#CABIN VERIFICATION AND VALIDATION - BIOLOGICAL DATA

Environment and Climate Change Canada

Analysis performed on 2019-08-13 13:55:31


This report presents the results for verification and validation of a biological CABIN data file associated to the project Test.

In this analysis, the biological dataset is checked to answer the following question:

  • Are the biological data reflecting the sites visited?

This document is a R notebook written in R Markdown. When you execute the code embedded in the notebook, the results will appear under the corresponding code. To do this, place your cursor inside a chunk (box which contains R code) and click the green arrow to the right of it named Run Current Chunk or press Ctrl+Shift+Enter (Cmd+Shift+Enter in macOS) on your keyboard. Repeat for each chunk. As the code contained in this notebook is executed, the results will appear under each of the corresponding chunks in this window. Once all commands are executed, click the Preview button at the top left of this window or press the Ctrl+Shift+K keys (Cmd+Shift+K in macOS). A new window will appear and will contain the report of these verification and validation results for the biological CABIN data.

##Requirements

##Descriptive Statistics

The data file contains 448 visits (lines) and 51 variables (columns).

The following table presents a subset of the data.

Reading Biological Data

ACTION: Examine the following:

  • Does the file seem to been read correctly?
  • Are columns missing?

List of visits present in the biological data (ID from the CABIN database):

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448

ACTION: Examine the following:

  • Compare the list above with the following table which shows the visits from all the data for this project.

Variables List:

Ameletidae, Ametropodidae, Aturidae, Baetidae, Baetiscidae, Brachycentridae, Capniidae, Ceratopogonidae, Chironomidae, Chloroperlidae, Edwardsiidae, Elmidae, Empididae, Enchytraeidae, Ephemerellidae, Ephemeridae, Feltriidae, Glossosomatidae, Heptageniidae, Hydrophilidae, Hydropsychidae, Hydroptilidae, Hydrozetidae, Hydryphantidae, Hygrobatidae, Lebertiidae, Lepidostomatidae, Leptoceridae, Leptohyphidae, Leptophlebiidae, Limnephilidae, Lumbriculidae, Naididae, Nemouridae, Oreoleptidae, Peltoperlidae, Perlidae, Perlodidae, Phryganeidae, Pionidae, Planorbidae, Poduridae, Polycentropodidae, Psychodidae, Sialidae, Simuliidae, Sperchontidae, Taeniopterygidae, Tipulidae, Torrenticolidae, Valvatidae

ACTION: *Examine the variables above and make sure they are all present.

##General Statistics

The following table shows the main general parameters per variable. When the result on the BinaryData line of the array is TRUE, this indicates that the variable has binary data. However, this result can also be obtained because the variable has only one to two values at most. The Na.values line indicates the number of missing values for each variable.

Table of General Statistics

ACTION: Examine the following:

  • Examine the data and make sure it reflects reality. Examine statistics and identify, if present, anomalies with statistics.

##Geographical Distribution

###Taxa Distribution

The following graphs show the location (latitude and longitude) ainsi que l’abondance en taxons des sites observées dans le fichier de données pour chaque taxon.

ACTION: Examine the following:

  • Is the geographical distribution of taxa showing anomalies?
  • Is there data that are odd?

###Richness Distribution

The following graphs show the location (latitude and longitude) and taxa richness on sites.

ACTION: Examine the following:

  • Is the geographical distribution of richness showing anomalies?
  • Are some richness measures out of the ordinary?
  • Is there a pattern in taxa richness?

The following interactive map illustrates the same data as the above graph. Click on a point to show the taxa richness.

Warning in validateCoords(lng, lat, funcName): Data contains 7 rows with
either missing or invalid lat/lon values and will be ignored

##Presence of Outliers

###Dispersion of Observed Values

The following scatterplots present the value of the taxa abundances observed in the dataset. Below the x-axis is the visit identifier for the corresponding observed value, namely the name of the site from which the data originated, its sampling date and the sampling number.

ACTION: Examine the following:

  • Is the distribution of abundance values indicating an ecological phenomenon or a potential problem (disturbance)?
  • Are some taxa very rare or very frequent?
  • Is a problem with abundant data apparent?

###Boxplots of Observed and Transformed Values

The first boxplot (left) shows the distribution of continuous variable values observed in the data file, the middle illustrates the distribution of the logarithmic-transformed values, and the third box plot (right) shows the distribution of the square-root-transformed values.

ACTION: Examine the following, putting your attention to points with a label (if present):

  • Do data seem out of the ordinary?
  • Is a data transformation showing a better statistical distribution than raw data?

###Identification of potential outliers

The first boxplot (left) shows the distribution of abundance values observed in the dataset and the dispersion diagram (right) show the distribution of abundance values in the order in which they appear in this file. Data with identification by their identifier on the diagrams are potentially outliers contained in the dataset. The method used to identify potentially outliers is the interquantile range (IQR). The IQR is calculated as follows:

IQR(x) = quantile(x, 3/4) - quantile(x, 1/4)

Potential outliers are defined as values below Q1 - 1,5 IQR or above Q3 + 1,5 IQR.

The identifier of the visit corresponds to the name of the site from which the data originated, its sampling date and the sample number for this visit.

The interpretation of Cleveland dotplot is done by looking at points that stick out on the right-hand side, or on the left-hand side. They are observed values that are considerable larger, or smaller, than the majority of the observations, and require further investigation. When the most likely explanation is that the extreme observations are measurement errors, they should be dropped because their presence is likely to dominate the analysis. On the other hand, if the removal of these values are not an option, a data transformation should be considered.

ACTION: Examine the following:

  • Are extreme values on the boxplots could be considered as outliers?
  • Are those same points on Cleveland dotplot isolated (on the left or right)?
  • Should some taxa (too rare or too abundant) not be considered in further analysis?

The following list shows another way of identifying potential outliers contained in the dataset for each variable. When the identifier of a data item is indicated therein, this indicates that this data represents potentially aberrant data contained in the data file. "" indicates non-aberrant data and NA indicates missing values. The identifier of the visit corresponds to the name of the site from which the data originated, its sampling date and the sampling number.

Ameletidae 
Site, Date and Number, Is NA
Site2 2011-01-01 18807, No
SM03262 2008-09-29 19074, No
VA03272 2008-09-29 18740, No
Number of Potential Outliers: 3 

Ametropodidae 
Site, Date and Number, Is NA
TH10062 2008-09-29 18366, No
Number of Potential Outliers: 1 

Aturidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Baetidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Baetiscidae 
Site, Date and Number, Is NA
CJ9271 2008-09-30 18747, No
Number of Potential Outliers: 1 

Brachycentridae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Capniidae 
Site, Date and Number, Is NA
MWLMCExp 2011-09-14 19547, No
MWLWCRef 2011-09-11 19548, No
Number of Potential Outliers: 2 

Ceratopogonidae 
Site, Date and Number, Is NA
KV12191 2010-09-15 18310, No
MWLMCExp 2011-09-14 19547, No
MWLWCRef 2011-09-11 19548, No
Number of Potential Outliers: 3 

Chironomidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Chloroperlidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Edwardsiidae 
Site, Date and Number, Is NA
MG09031 2012-12-12 21909, No
Number of Potential Outliers: 1 

Elmidae 
Site, Date and Number, Is NA
KV12191 2010-09-15 18310, No
Number of Potential Outliers: 1 

Empididae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Enchytraeidae 
Site, Date and Number, Is NA
MWLMCExp 2011-09-14 19547, No
Number of Potential Outliers: 1 

Ephemerellidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Ephemeridae 
Site, Date and Number, Is NA
EE06181 2008-09-30 19037, No
MH02262 2008-09-29 16858, No
PM02041 2008-09-30 19071, No
Number of Potential Outliers: 3 

Feltriidae 
Site, Date and Number, Is NA
MWLMCExp 2011-09-14 19547, No
Number of Potential Outliers: 1 

Glossosomatidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Heptageniidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Hydrophilidae 
Site, Date and Number, Is NA
MWLWCRef 2011-09-11 19548, No
Number of Potential Outliers: 1 

Hydropsychidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Hydroptilidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Hydrozetidae 
Site, Date and Number, Is NA
MWLWCRef 2011-09-11 19548, No
Number of Potential Outliers: 1 

Hydryphantidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Hygrobatidae 
Site, Date and Number, Is NA
MWLMCExp 2011-09-14 19547, No
Number of Potential Outliers: 1 

Lebertiidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Lepidostomatidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Leptoceridae 
Site, Date and Number, Is NA
CD10141 2008-09-29 17522, No
Number of Potential Outliers: 1 

Leptohyphidae 
Site, Date and Number, Is NA
SM03262 2008-09-29 19074, No
VA03272 2008-09-29 18740, No
Number of Potential Outliers: 2 

Leptophlebiidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Limnephilidae 
Site, Date and Number, Is NA
MWLMCExp 2011-09-14 19547, No
MWLWCRef 2011-09-11 19548, No
Number of Potential Outliers: 2 

Lumbriculidae 
Site, Date and Number, Is NA
MWLMCExp 2011-09-14 19547, No
MWLWCRef 2011-09-11 19548, No
Number of Potential Outliers: 2 

Naididae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Nemouridae 
Site, Date and Number, Is NA
KV12191 2010-09-15 18310, No
MWLWCRef 2011-09-11 19548, No
Number of Potential Outliers: 2 

Oreoleptidae 
Site, Date and Number, Is NA
CJ9272 2008-09-29 18748, No
CJ9273 2008-09-28 18750, No
KL08313 2008-09-28 16868, No
LL10173 2008-09-28 18802, No
Number of Potential Outliers: 4 

Peltoperlidae 
Site, Date and Number, Is NA
CD10141 2008-09-29 17522, No
JJ06301 2008-09-30 17488, No
MH02261 2008-09-30 16852, No
Number of Potential Outliers: 3 

Perlidae 
Site, Date and Number, Is NA
JB12071 2008-09-30 19086, No
Number of Potential Outliers: 1 

Perlodidae 
Site, Date and Number, Is NA
MWLMCExp 2011-09-14 19547, No
Number of Potential Outliers: 1 

Phryganeidae 
Site, Date and Number, Is NA
KV12191 2010-09-15 18310, No
Number of Potential Outliers: 1 

Pionidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Planorbidae 
Site, Date and Number, Is NA
KV12191 2010-09-15 18310, No
Number of Potential Outliers: 1 

Poduridae 
Site, Date and Number, Is NA
MWLMCExp 2011-09-14 19547, No
MWLWCRef 2011-09-11 19548, No
Number of Potential Outliers: 2 

Polycentropodidae 
Site, Date and Number, Is NA
SM03262 2008-09-29 19074, No
VA03272 2008-09-29 18740, No
Number of Potential Outliers: 2 

Psychodidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Sialidae 
Site, Date and Number, Is NA
KV12191 2010-09-15 18310, No
Number of Potential Outliers: 1 

Simuliidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Sperchontidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Taeniopterygidae 
Site, Date and Number, Is NA
MWLMCExp 2011-09-14 19547, No
Number of Potential Outliers: 1 

Tipulidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Torrenticolidae 
Site, Date and Number, Is NA
Number of Potential Outliers: 0 

Valvatidae 
Site, Date and Number, Is NA
KV12191 2010-09-15 18310, No
Number of Potential Outliers: 1 
Ameletidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Ametropodidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Aturidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Baetidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Baetiscidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Brachycentridae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Capniidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Ceratopogonidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Chironomidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Chloroperlidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Edwardsiidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Elmidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Empididae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Enchytraeidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Ephemerellidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Ephemeridae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Feltriidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Glossosomatidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Heptageniidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Hydrophilidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Hydropsychidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Hydroptilidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Hydrozetidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Hydryphantidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Hygrobatidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Lebertiidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Lepidostomatidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Leptoceridae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Leptohyphidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Leptophlebiidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Limnephilidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Lumbriculidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Naididae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Nemouridae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Oreoleptidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Peltoperlidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Perlidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Perlodidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Phryganeidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Pionidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Planorbidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Poduridae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Polycentropodidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Psychodidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Sialidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Simuliidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Sperchontidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Taeniopterygidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Tipulidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Torrenticolidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

Valvatidae 
Site, Date and Number, Is NA
Number of Missing Values: 0 

##Presence of zeros

In ecological studies, we need to consider what it means when two species are jointly absent. This could say something important about the ecological characteristics of a site. When two sites both have the same joint absences, this might mean that the sites are ecologically similar. On the other hand, if a species has a highly clumped distribution, or is simply rare, then joint absences might arise through chance and say nothing about the suitability of a given site for a species, the similarity among the habitat needs of species or the ecological similarity of sites. A high frequency of zeros, thus, can greatly complicate interpretation of such analyses.

###Abundance Frequency Distribution

Abundance values a taxa commonly show a skew distribution that looks like a log-normal distribution, with many small to moderate values and a few extremely large values.

The following histogram illustrates the abundance frequency distribution of taxa. This chart helps, among other things, to evaluate the number of 0 values in the dataset.

###Presence of double-zeros

We need to know whether there are double zeros in the data. This means that for each species-pair, we need to calculate how often both had zero abundance for the same site.

The following correlation matrix (or corrgram) illustrates the frequency with which pairs of taza both have zero abundance.The color and the amount that a circle has been filled correspond to the proportion of observations with double zeros. A white color indicates a correlation close to 0.5 whereas a dark blue color indicates a correlation near 1. This matrix also illustrates the proportion of correlation values. 0 abundances of a taxon relative to all abundance values observed in the latter. The diagonal running from bottom left to top right represents the percentage of observations of a taxa equal to zero. Only taxa present in more than 25% of the visits are shown.

ACTION: Examine the following:

  • Are data showing a short or a long biological gradient?
  • What the presence of double zeros means for the data?

##Data Normality

Various statistical techniques assume normality. It is important to know whether the statistical technique to be used does assume normality, and what exactly is assumed to be normally distributed? For example, a Principal component analysis (PCA) does not require normality. Linear regression does assume normality, but is reasonably robust against violation of the assumption. For other techniques like discriminant analysis, normality of observations of a particular variable within each group is important. Therefore, testing for normality (among other things) is always recommanded when starting the data analysis phase of an ecological project.

###Quantile-Quantile (Q-Q) plots and et frequency histograms

For each variable, the first graph (left) illustrates by points the observed distribution of taxon values and the theoretical normal distribution calculated from the parameters of the distribution observed by a line. The more the values observed are positioned on the right, the more these are distributed according to the normal law. The second graph (right) shows a histogram the frequency distribution of the values observed by taxon. It allows to verify and validate if the data distribution seems to follow the normal distribution. This histogram also illustrates the mean abundance per taxon by a solid line as well as the standard deviation of abundances per taxon by two dotted lines.

####Normality test by taxon

One way to examine the normality of data is to use the Snows test. For each taxon, this calculation tests the null hypothesis that the data comes from an exact normal population.

This is a much less interesting null hypothesis than what we usually want, which is to know if the data come from a distribution that is similar enough to the normal to use normal theory inference.

A value of P (p-value) less than 0.05 indicates that it is not possible to assume that the distribution of the data follows the normal distribution with a probability of 95%.

$Ameletidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Ametropodidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Aturidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Baetidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Baetiscidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Brachycentridae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Capniidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Ceratopogonidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Chironomidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Chloroperlidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Edwardsiidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Elmidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Empididae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Enchytraeidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Ephemerellidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Ephemeridae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Feltriidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Glossosomatidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Heptageniidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Hydrophilidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Hydropsychidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Hydroptilidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Hydrozetidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Hydryphantidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Hygrobatidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Lebertiidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Lepidostomatidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Leptoceridae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Leptohyphidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Leptophlebiidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Limnephilidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Lumbriculidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Naididae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Nemouridae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Oreoleptidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Peltoperlidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Perlidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Perlodidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Phryganeidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Pionidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Planorbidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Poduridae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Polycentropodidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Psychodidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Sialidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Simuliidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Sperchontidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Taeniopterygidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Tipulidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Torrenticolidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)


$Valvatidae

    Snow's Penultimate Normality Test

data:  newX[, i]
p-value < 2.2e-16
alternative hypothesis: 
    The data does not come from a strict normal distribution (but
    may represent a distribution that is close enough)

####Taxa Occurences

At how many sites does each taxon occur?

First, the sorted list below shows the accreasing occurence of taxa in the dataset.

After that, two graphs are proposed. The first graph (left) shows the distribution of taxa presence. The second graph (right) illustrates the log-transformed data. On these graphs, the mean occurence is shown by a solid line whereas standard deviation by dashed lines.

En examination of these two graphs allows us to verify if the taxon dataset seams to comply to a normal distribution. If the distribution in the second graph is closer to a normal distribution, a log transformation could be useful.

       Ameletidae     Ametropodidae          Aturidae          Baetidae 
              147                 1               146               443 
      Baetiscidae   Brachycentridae         Capniidae   Ceratopogonidae 
                1               148                 2                 3 
     Chironomidae    Chloroperlidae      Edwardsiidae           Elmidae 
              444               150                 1                 1 
        Empididae     Enchytraeidae    Ephemerellidae       Ephemeridae 
              288                 1               294                 3 
       Feltriidae   Glossosomatidae     Heptageniidae     Hydrophilidae 
                1               294               440                 1 
   Hydropsychidae     Hydroptilidae      Hydrozetidae    Hydryphantidae 
              439               146                 1               144 
     Hygrobatidae       Lebertiidae  Lepidostomatidae      Leptoceridae 
                1               146               293                 1 
    Leptohyphidae   Leptophlebiidae     Limnephilidae     Lumbriculidae 
              146               293                 2                 2 
         Naididae        Nemouridae      Oreoleptidae     Peltoperlidae 
              443               149                 4                 3 
         Perlidae        Perlodidae      Phryganeidae          Pionidae 
                1               145                 1               145 
      Planorbidae         Poduridae Polycentropodidae       Psychodidae 
                1                 2               145               145 
         Sialidae        Simuliidae     Sperchontidae  Taeniopterygidae 
                1               148               147                 1 
        Tipulidae   Torrenticolidae        Valvatidae 
              293               145                 1 
[1] "Sorted list of taxa occurences"
    Ametropodidae       Baetiscidae      Edwardsiidae           Elmidae 
                1                 1                 1                 1 
    Enchytraeidae        Feltriidae     Hydrophilidae      Hydrozetidae 
                1                 1                 1                 1 
     Hygrobatidae      Leptoceridae          Perlidae      Phryganeidae 
                1                 1                 1                 1 
      Planorbidae          Sialidae  Taeniopterygidae        Valvatidae 
                1                 1                 1                 1 
        Capniidae     Limnephilidae     Lumbriculidae         Poduridae 
                2                 2                 2                 2 
  Ceratopogonidae       Ephemeridae     Peltoperlidae      Oreoleptidae 
                3                 3                 3                 4 
   Hydryphantidae        Perlodidae          Pionidae Polycentropodidae 
              144               145               145               145 
      Psychodidae   Torrenticolidae          Aturidae     Hydroptilidae 
              145               145               146               146 
      Lebertiidae     Leptohyphidae        Ameletidae     Sperchontidae 
              146               146               147               147 
  Brachycentridae        Simuliidae        Nemouridae    Chloroperlidae 
              148               148               149               150 
        Empididae  Lepidostomatidae   Leptophlebiidae         Tipulidae 
              288               293               293               293 
   Ephemerellidae   Glossosomatidae    Hydropsychidae     Heptageniidae 
              294               294               439               440 
         Baetidae          Naididae      Chironomidae 
              443               443               444 

The following graphs are similar to the previous ones but for relative frequencies.

       Ameletidae     Ametropodidae          Aturidae          Baetidae 
       32.8125000         0.2232143        32.5892857        98.8839286 
      Baetiscidae   Brachycentridae         Capniidae   Ceratopogonidae 
        0.2232143        33.0357143         0.4464286         0.6696429 
     Chironomidae    Chloroperlidae      Edwardsiidae           Elmidae 
       99.1071429        33.4821429         0.2232143         0.2232143 
        Empididae     Enchytraeidae    Ephemerellidae       Ephemeridae 
       64.2857143         0.2232143        65.6250000         0.6696429 
       Feltriidae   Glossosomatidae     Heptageniidae     Hydrophilidae 
        0.2232143        65.6250000        98.2142857         0.2232143 
   Hydropsychidae     Hydroptilidae      Hydrozetidae    Hydryphantidae 
       97.9910714        32.5892857         0.2232143        32.1428571 
     Hygrobatidae       Lebertiidae  Lepidostomatidae      Leptoceridae 
        0.2232143        32.5892857        65.4017857         0.2232143 
    Leptohyphidae   Leptophlebiidae     Limnephilidae     Lumbriculidae 
       32.5892857        65.4017857         0.4464286         0.4464286 
         Naididae        Nemouridae      Oreoleptidae     Peltoperlidae 
       98.8839286        33.2589286         0.8928571         0.6696429 
         Perlidae        Perlodidae      Phryganeidae          Pionidae 
        0.2232143        32.3660714         0.2232143        32.3660714 
      Planorbidae         Poduridae Polycentropodidae       Psychodidae 
        0.2232143         0.4464286        32.3660714        32.3660714 
         Sialidae        Simuliidae     Sperchontidae  Taeniopterygidae 
        0.2232143        33.0357143        32.8125000         0.2232143 
        Tipulidae   Torrenticolidae        Valvatidae 
       65.4017857        32.3660714         0.2232143 
[1] "Sorted list of taxa relative frequency"
    Ametropodidae       Baetiscidae      Edwardsiidae           Elmidae 
              0.2               0.2               0.2               0.2 
    Enchytraeidae        Feltriidae     Hydrophilidae      Hydrozetidae 
              0.2               0.2               0.2               0.2 
     Hygrobatidae      Leptoceridae          Perlidae      Phryganeidae 
              0.2               0.2               0.2               0.2 
      Planorbidae          Sialidae  Taeniopterygidae        Valvatidae 
              0.2               0.2               0.2               0.2 
        Capniidae     Limnephilidae     Lumbriculidae         Poduridae 
              0.4               0.4               0.4               0.4 
  Ceratopogonidae       Ephemeridae     Peltoperlidae      Oreoleptidae 
              0.7               0.7               0.7               0.9 
   Hydryphantidae        Perlodidae          Pionidae Polycentropodidae 
             32.1              32.4              32.4              32.4 
      Psychodidae   Torrenticolidae          Aturidae     Hydroptilidae 
             32.4              32.4              32.6              32.6 
      Lebertiidae     Leptohyphidae        Ameletidae     Sperchontidae 
             32.6              32.6              32.8              32.8 
  Brachycentridae        Simuliidae        Nemouridae    Chloroperlidae 
             33.0              33.0              33.3              33.5 
        Empididae  Lepidostomatidae   Leptophlebiidae         Tipulidae 
             64.3              65.4              65.4              65.4 
   Ephemerellidae   Glossosomatidae    Hydropsychidae     Heptageniidae 
             65.6              65.6              98.0              98.2 
         Baetidae          Naididae      Chironomidae 
             98.9              98.9              99.1 

####Boxplots for taxa occurences

The first boxplot (left) illustrates the distribution of occurrences calculated from the data file whereas the second (right) shows the distribution of occurrences calculated from the log transformed data file.

The following boxplots are similar to the previous but for relative frequencies

##Taxa Independence

###Correlation matrix between taxa

The following correlation matrix shows the relationship between all pairs of taxa. It allows to verify the presence of co-occurence between taxa. Only taxa present in more than 25% of the visits are shown.

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 2s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 1s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 2s
plot: [2,2] [================>----------------------------] 38% est: 2s
plot: [2,3] [===================>-------------------------] 44% est: 2s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 1s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 2s
plot: [1,3] [=======>-------------------------------------] 19% est: 3s
plot: [1,4] [==========>----------------------------------] 25% est: 3s
plot: [2,1] [=============>-------------------------------] 31% est: 3s
plot: [2,2] [================>----------------------------] 38% est: 2s
plot: [2,3] [===================>-------------------------] 44% est: 2s
plot: [2,4] [=====================>-----------------------] 50% est: 2s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 1s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 2s
plot: [1,4] [==========>----------------------------------] 25% est: 2s
plot: [2,1] [=============>-------------------------------] 31% est: 3s
plot: [2,2] [================>----------------------------] 38% est: 3s
plot: [2,3] [===================>-------------------------] 44% est: 3s
plot: [2,4] [=====================>-----------------------] 50% est: 2s
plot: [3,1] [========================>--------------------] 56% est: 2s
plot: [3,2] [===========================>-----------------] 62% est: 2s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 1s
plot: [4,2] [======================================>------] 88% est: 1s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 2s
plot: [1,3] [=======>-------------------------------------] 19% est: 2s
plot: [1,4] [==========>----------------------------------] 25% est: 2s
plot: [2,1] [=============>-------------------------------] 31% est: 2s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 2s
plot: [1,4] [==========>----------------------------------] 25% est: 2s
plot: [2,1] [=============>-------------------------------] 31% est: 2s
plot: [2,2] [================>----------------------------] 38% est: 2s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 1s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 2s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 1s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 2s
plot: [2,2] [================>----------------------------] 38% est: 2s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 1s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 2s
plot: [1,4] [==========>----------------------------------] 25% est: 2s
plot: [2,1] [=============>-------------------------------] 31% est: 2s
plot: [2,2] [================>----------------------------] 38% est: 2s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 1s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 1s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 1s
plot: [1,4] [==========>----------------------------------] 25% est: 1s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 1s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

plot: [1,1] [==>------------------------------------------] 6% est: 0s
plot: [1,2] [=====>---------------------------------------] 12% est: 1s
plot: [1,3] [=======>-------------------------------------] 19% est: 2s
plot: [1,4] [==========>----------------------------------] 25% est: 2s
plot: [2,1] [=============>-------------------------------] 31% est: 1s
plot: [2,2] [================>----------------------------] 38% est: 1s
plot: [2,3] [===================>-------------------------] 44% est: 1s
plot: [2,4] [=====================>-----------------------] 50% est: 1s
plot: [3,1] [========================>--------------------] 56% est: 1s
plot: [3,2] [===========================>-----------------] 62% est: 1s
plot: [3,3] [==============================>--------------] 69% est: 1s
plot: [3,4] [=================================>-----------] 75% est: 1s
plot: [4,1] [====================================>--------] 81% est: 0s
plot: [4,2] [======================================>------] 88% est: 0s
plot: [4,3] [=========================================>---] 94% est: 0s
plot: [4,4] [=============================================]100% est: 0s

###Pearson Correlation Matrix

The following correlation matrix illustrates the correlation strength that exists between two taxa by the intensity of the color. A correlation illustrated by the white color indicates a correlation force that tends to a value of 0 and a correlation illustrated by the dark blue color indicates a correlation force that tends to a value of 1. Pearson correlation values between taxa are shown in the lower left portion of the figure. This matrix also illustrates the proportion of non-zero abundance values that a taxon has with respect to all the abundance values observed in the latter. Only taxa present in more than 25% of the visits are shown.

###Taxa Abundance through Time

It could be interesting to look at the abundance of taxa through time to see dynamics or abrupt changes.

Pour chaque taxon, the first graph (top left) shows the abundance value of the data by sampling years. The second graph (top right) illustrates the observed patterns of changes in abundance of individuals over time. The third graph (bottom left) illustrates future forecasts of changes in abundance of individuals over time. On this graph, the blue line corresponds to the expected average trend of changes over time, the dark gray zone corresponds to a confidence interval of 80% and the pale gray zone corresponds to a 95% confidence interval. The fourth graph (bottom right) illustrates time series autocorrelation (ACF). An autocorrelation value greater than the 95% confidence interval illustrated by the dotted line indicates a possible dependency between the variable and the time of year (time). For example, a certain value of abundance of a taxon observed in a given year could be explained by a certain event dating from a previous year (lag in time in years). It should be noted that the autocorrelation at offset time 0 is, by definition, equal to 1.

The following results present the calculation of the Box-Ljung statistical test applied to each taxon and are complementary to the previous graphs. A value of P (p-value) lower than 0.05 indicates that the residual values of a variable depend on the period of the year (time).

[1] "Ameletidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.052817, df = 1, p-value = 0.8182


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.13158, df = 2, p-value = 0.9363


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.61146, df = 3, p-value = 0.8938


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.85553, df = 4, p-value = 0.9309


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.4095, df = 5, p-value = 0.9233


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.8029, df = 6, p-value = 0.8332


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.0036, df = 7, p-value = 0.6595


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.0092, df = 8, p-value = 0.7566


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.0145, df = 9, p-value = 0.833


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.5174, df = 10, p-value = 0.854


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.5406, df = 11, p-value = 0.9022


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.5712, df = 12, p-value = 0.9361


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.7633, df = 13, p-value = 0.9543


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.7649, df = 14, p-value = 0.9721


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.1548, df = 15, p-value = 0.977


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.4635, df = 16, p-value = 0.9633


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6062, df = 17, p-value = 0.9518


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.5394, df = 18, p-value = 0.9459


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.5465, df = 19, p-value = 0.9633


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.5541, df = 20, p-value = 0.9756


[1] "Ametropodidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Aturidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.022128, df = 1, p-value = 0.8817


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.38926, df = 2, p-value = 0.8231


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.1651, df = 3, p-value = 0.7614


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4735, df = 4, p-value = 0.6494


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4836, df = 5, p-value = 0.779


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.572, df = 6, p-value = 0.5998


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5107, df = 7, p-value = 0.3777


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5229, df = 8, p-value = 0.4814


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5427, df = 9, p-value = 0.5808


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.385, df = 10, p-value = 0.5913


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.4789, df = 11, p-value = 0.6699


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.543, df = 12, p-value = 0.7414


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.7924, df = 13, p-value = 0.7884


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.876, df = 14, p-value = 0.8389


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.7184, df = 15, p-value = 0.8371


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.9141, df = 16, p-value = 0.8711


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.9556, df = 17, p-value = 0.9055


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.039, df = 18, p-value = 0.9306


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.043, df = 19, p-value = 0.9519


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.87, df = 20, p-value = 0.9495


[1] "Baetidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.19447, df = 1, p-value = 0.6592


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.21106, df = 2, p-value = 0.8998


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.64621, df = 3, p-value = 0.8858


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.78266, df = 4, p-value = 0.9408


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.2051, df = 5, p-value = 0.8201


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.2734, df = 6, p-value = 0.8929


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.2485, df = 7, p-value = 0.7508


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.2582, df = 8, p-value = 0.8331


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.3481, df = 9, p-value = 0.887


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.8794, df = 10, p-value = 0.8253


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.9176, df = 11, p-value = 0.8788


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.0309, df = 12, p-value = 0.9145


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.9702, df = 13, p-value = 0.9037


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.0803, df = 14, p-value = 0.9316


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.3964, df = 15, p-value = 0.9457


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.3972, df = 16, p-value = 0.9648


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.4098, df = 17, p-value = 0.9776


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.4123, df = 18, p-value = 0.9862


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.4347, df = 19, p-value = 0.9915


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.2579, df = 20, p-value = 0.99


[1] "Baetiscidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.0079245, df = 1, p-value = 0.9291


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.016029, df = 2, p-value = 0.992


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.024317, df = 3, p-value = 0.999


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.032793, df = 4, p-value = 0.9999


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.041461, df = 5, p-value = 1


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.050323, df = 6, p-value = 1


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.059385, df = 7, p-value = 1


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.06865, df = 8, p-value = 1


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.078123, df = 9, p-value = 1


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.087809, df = 10, p-value = 1


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.09771, df = 11, p-value = 1


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.10783, df = 12, p-value = 1


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.11818, df = 13, p-value = 1


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.12876, df = 14, p-value = 1


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.13957, df = 15, p-value = 1


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.15063, df = 16, p-value = 1


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.16193, df = 17, p-value = 1


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.17348, df = 18, p-value = 1


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.18528, df = 19, p-value = 1


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.19735, df = 20, p-value = 1


[1] "Brachycentridae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.029427, df = 1, p-value = 0.8638


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.29169, df = 2, p-value = 0.8643


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.4342, df = 3, p-value = 0.3294


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.431, df = 4, p-value = 0.03376


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.743, df = 5, p-value = 0.05672


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 12.516, df = 6, p-value = 0.0514


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.751, df = 7, p-value = 0.0558


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.829, df = 8, p-value = 0.08634


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.836, df = 9, p-value = 0.1283


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.987, df = 10, p-value = 0.1736


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.025, df = 11, p-value = 0.2316


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.26, df = 12, p-value = 0.2844


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.666, df = 13, p-value = 0.3286


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 15.232, df = 14, p-value = 0.3625


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 16.223, df = 15, p-value = 0.3674


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 16.228, df = 16, p-value = 0.4372


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 17.131, df = 17, p-value = 0.4455


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 17.195, df = 18, p-value = 0.5097


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 18.738, df = 19, p-value = 0.4738


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 19.515, df = 20, p-value = 0.4886


[1] "Capniidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Ceratopogonidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Chironomidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.11914, df = 1, p-value = 0.73


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.41039, df = 2, p-value = 0.8145


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.5016, df = 3, p-value = 0.9185


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.4434, df = 4, p-value = 0.8366


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.5183, df = 5, p-value = 0.9109


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.7044, df = 6, p-value = 0.8449


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.8895, df = 7, p-value = 0.5527


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.9004, df = 8, p-value = 0.6584


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.9101, df = 9, p-value = 0.7489


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.0961, df = 10, p-value = 0.7163


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.1979, df = 11, p-value = 0.7828


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.2636, df = 12, p-value = 0.8397


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.7693, df = 13, p-value = 0.8583


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.924, df = 14, p-value = 0.8932


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.62, df = 15, p-value = 0.8965


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6964, df = 16, p-value = 0.9254


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.7957, df = 17, p-value = 0.9465


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.8141, df = 18, p-value = 0.9639


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.8416, df = 19, p-value = 0.976


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.6379, df = 20, p-value = 0.9743


[1] "Chloroperlidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.029549, df = 1, p-value = 0.8635


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.29133, df = 2, p-value = 0.8644


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.4295, df = 3, p-value = 0.33


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.437, df = 4, p-value = 0.03367


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.749, df = 5, p-value = 0.05659


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 12.514, df = 6, p-value = 0.05144


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.744, df = 7, p-value = 0.05593


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.822, df = 8, p-value = 0.08653


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.829, df = 9, p-value = 0.1285


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.979, df = 10, p-value = 0.1739


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.017, df = 11, p-value = 0.232


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.252, df = 12, p-value = 0.2849


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.658, df = 13, p-value = 0.3292


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 15.224, df = 14, p-value = 0.363


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 16.214, df = 15, p-value = 0.368


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 16.219, df = 16, p-value = 0.4378


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 17.12, df = 17, p-value = 0.4462


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 17.184, df = 18, p-value = 0.5105


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 18.731, df = 19, p-value = 0.4742


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 19.502, df = 20, p-value = 0.4894


[1] "Edwardsiidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Elmidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Empididae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.038038, df = 1, p-value = 0.8454


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.35283, df = 2, p-value = 0.8383


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.0833, df = 3, p-value = 0.7811


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.5001, df = 4, p-value = 0.6446


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.5071, df = 5, p-value = 0.7754


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.6273, df = 6, p-value = 0.5924


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6855, df = 7, p-value = 0.3611


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6987, df = 8, p-value = 0.4634


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.7189, df = 9, p-value = 0.5627


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.5345, df = 10, p-value = 0.5768


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6044, df = 11, p-value = 0.6584


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6696, df = 12, p-value = 0.7309


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.9016, df = 13, p-value = 0.7803


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.0039, df = 14, p-value = 0.8308


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.8344, df = 15, p-value = 0.83


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.051, df = 16, p-value = 0.8639


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.091, df = 17, p-value = 0.8997


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.161, df = 18, p-value = 0.9265


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.169, df = 19, p-value = 0.9486


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 11.086, df = 20, p-value = 0.944


[1] "Enchytraeidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Ephemerellidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.0068903, df = 1, p-value = 0.9338


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.030535, df = 2, p-value = 0.9848


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.099753, df = 3, p-value = 0.9919


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.15729, df = 4, p-value = 0.9971


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.2822, df = 5, p-value = 0.9368


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.2829, df = 6, p-value = 0.9726


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.1078, df = 7, p-value = 0.7673


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.1078, df = 8, p-value = 0.8473


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.1079, df = 9, p-value = 0.9042


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.6589, df = 10, p-value = 0.9128


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.7365, df = 11, p-value = 0.9433


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.8952, df = 12, p-value = 0.9213


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.0697, df = 13, p-value = 0.9436


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.2074, df = 14, p-value = 0.961


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.4034, df = 15, p-value = 0.9455


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.4067, df = 16, p-value = 0.9646


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5634, df = 17, p-value = 0.975


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.4326, df = 18, p-value = 0.9715


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.4439, df = 19, p-value = 0.9816


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.3911, df = 20, p-value = 0.9779


[1] "Ephemeridae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Feltriidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Glossosomatidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.044304, df = 1, p-value = 0.8333


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.32287, df = 2, p-value = 0.8509


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.0294, df = 3, p-value = 0.7941


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4512, df = 4, p-value = 0.6534


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4582, df = 5, p-value = 0.7828


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.6163, df = 6, p-value = 0.5939


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6113, df = 7, p-value = 0.3681


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6192, df = 8, p-value = 0.4715


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6385, df = 9, p-value = 0.571


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.5024, df = 10, p-value = 0.5799


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.5881, df = 11, p-value = 0.6599


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6564, df = 12, p-value = 0.732


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.9035, df = 13, p-value = 0.7802


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.9721, df = 14, p-value = 0.8328


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.8229, df = 15, p-value = 0.8307


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.045, df = 16, p-value = 0.8643


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.095, df = 17, p-value = 0.8996


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.155, df = 18, p-value = 0.9267


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.165, df = 19, p-value = 0.9487


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 11.045, df = 20, p-value = 0.9451


[1] "Heptageniidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.028727, df = 1, p-value = 0.8654


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.29627, df = 2, p-value = 0.8623


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.35641, df = 3, p-value = 0.9491


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.36362, df = 4, p-value = 0.9853


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.0369, df = 5, p-value = 0.9595


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.4313, df = 6, p-value = 0.9639


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.2904, df = 7, p-value = 0.8569


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.3239, df = 8, p-value = 0.9124


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.3829, df = 9, p-value = 0.9472


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.7369, df = 10, p-value = 0.908


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.8984, df = 11, p-value = 0.936


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.975, df = 12, p-value = 0.9588


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.1139, df = 13, p-value = 0.9419


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.5817, df = 14, p-value = 0.9496


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.0196, df = 15, p-value = 0.9571


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.1133, df = 16, p-value = 0.971


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5472, df = 17, p-value = 0.9753


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5503, df = 18, p-value = 0.9846


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.0224, df = 19, p-value = 0.9864


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.7078, df = 20, p-value = 0.9861


[1] "Hydrophilidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Hydropsychidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.20186, df = 1, p-value = 0.6532


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.32611, df = 2, p-value = 0.8495


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.84646, df = 3, p-value = 0.8383


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.92601, df = 4, p-value = 0.9208


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.9274, df = 5, p-value = 0.7112


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.9275, df = 6, p-value = 0.8179


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.6927, df = 7, p-value = 0.6974


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.7085, df = 8, p-value = 0.7882


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.8355, df = 9, p-value = 0.8484


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.3488, df = 10, p-value = 0.7852


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.3644, df = 11, p-value = 0.848


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.474, df = 12, p-value = 0.8903


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.3171, df = 13, p-value = 0.8851


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.3564, df = 14, p-value = 0.9201


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6396, df = 15, p-value = 0.9374


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6412, df = 16, p-value = 0.9588


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6413, df = 17, p-value = 0.9736


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6414, df = 18, p-value = 0.9835


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6416, df = 19, p-value = 0.9899


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.3936, df = 20, p-value = 0.9889


[1] "Hydroptilidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.021066, df = 1, p-value = 0.8846


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.3944, df = 2, p-value = 0.821


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.1928, df = 3, p-value = 0.7547


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4701, df = 4, p-value = 0.65


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4801, df = 5, p-value = 0.7795


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.6205, df = 6, p-value = 0.5933


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6282, df = 7, p-value = 0.3665


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6399, df = 8, p-value = 0.4694


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6605, df = 9, p-value = 0.5687


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.5198, df = 10, p-value = 0.5782


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6127, df = 11, p-value = 0.6576


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6781, df = 12, p-value = 0.7301


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.9329, df = 13, p-value = 0.778


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.0162, df = 14, p-value = 0.83


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.8681, df = 15, p-value = 0.828


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.059, df = 16, p-value = 0.8635


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.101, df = 17, p-value = 0.8993


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.182, df = 18, p-value = 0.9258


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.187, df = 19, p-value = 0.9482


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 11.002, df = 20, p-value = 0.9462


[1] "Hydrozetidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Hydryphantidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.021066, df = 1, p-value = 0.8846


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.3944, df = 2, p-value = 0.821


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.1928, df = 3, p-value = 0.7547


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4701, df = 4, p-value = 0.65


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4801, df = 5, p-value = 0.7795


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.6205, df = 6, p-value = 0.5933


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6282, df = 7, p-value = 0.3665


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6399, df = 8, p-value = 0.4694


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6605, df = 9, p-value = 0.5687


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.5198, df = 10, p-value = 0.5782


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6127, df = 11, p-value = 0.6576


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6781, df = 12, p-value = 0.7301


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.9329, df = 13, p-value = 0.778


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.0162, df = 14, p-value = 0.83


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.8681, df = 15, p-value = 0.828


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.059, df = 16, p-value = 0.8635


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.101, df = 17, p-value = 0.8993


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.182, df = 18, p-value = 0.9258


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.187, df = 19, p-value = 0.9482


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 11.002, df = 20, p-value = 0.9462


[1] "Hygrobatidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Lebertiidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.022128, df = 1, p-value = 0.8817


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.38926, df = 2, p-value = 0.8231


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.1651, df = 3, p-value = 0.7614


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4735, df = 4, p-value = 0.6494


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4836, df = 5, p-value = 0.779


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.572, df = 6, p-value = 0.5998


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5107, df = 7, p-value = 0.3777


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5229, df = 8, p-value = 0.4814


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5427, df = 9, p-value = 0.5808


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.385, df = 10, p-value = 0.5913


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.4789, df = 11, p-value = 0.6699


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.543, df = 12, p-value = 0.7414


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.7924, df = 13, p-value = 0.7884


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.876, df = 14, p-value = 0.8389


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.7184, df = 15, p-value = 0.8371


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.9141, df = 16, p-value = 0.8711


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.9556, df = 17, p-value = 0.9055


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.039, df = 18, p-value = 0.9306


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.043, df = 19, p-value = 0.9519


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.87, df = 20, p-value = 0.9495


[1] "Lepidostomatidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.013839, df = 1, p-value = 0.9064


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.19214, df = 2, p-value = 0.9084


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.40071, df = 3, p-value = 0.9401


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.40448, df = 4, p-value = 0.9821


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.61416, df = 5, p-value = 0.9873


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.93065, df = 6, p-value = 0.9881


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.2817, df = 7, p-value = 0.9889


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.2833, df = 8, p-value = 0.9957


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.1701, df = 9, p-value = 0.9885


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.8678, df = 10, p-value = 0.9531


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.9191, df = 11, p-value = 0.9722


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.9207, df = 12, p-value = 0.9848


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.1655, df = 13, p-value = 0.9399


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.4028, df = 14, p-value = 0.9553


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.5663, df = 15, p-value = 0.9686


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.9683, df = 16, p-value = 0.9739


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.7543, df = 17, p-value = 0.9715


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.9165, df = 18, p-value = 0.9799


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.1322, df = 19, p-value = 0.9712


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.2027, df = 20, p-value = 0.9804


[1] "Leptoceridae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.0079245, df = 1, p-value = 0.9291


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.016029, df = 2, p-value = 0.992


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.024317, df = 3, p-value = 0.999


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.032793, df = 4, p-value = 0.9999


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.041461, df = 5, p-value = 1


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.050323, df = 6, p-value = 1


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.059385, df = 7, p-value = 1


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.06865, df = 8, p-value = 1


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.078123, df = 9, p-value = 1


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.087809, df = 10, p-value = 1


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.09771, df = 11, p-value = 1


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.10783, df = 12, p-value = 1


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.11818, df = 13, p-value = 1


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.12876, df = 14, p-value = 1


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.13957, df = 15, p-value = 1


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.15063, df = 16, p-value = 1


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.16193, df = 17, p-value = 1


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.17348, df = 18, p-value = 1


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.18528, df = 19, p-value = 1


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.19735, df = 20, p-value = 1


[1] "Leptohyphidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.053379, df = 1, p-value = 0.8173


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.13285, df = 2, p-value = 0.9357


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.61754, df = 3, p-value = 0.8924


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.86631, df = 4, p-value = 0.9293


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.4227, df = 5, p-value = 0.9218


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.8272, df = 6, p-value = 0.8302


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.0399, df = 7, p-value = 0.6551


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.0454, df = 8, p-value = 0.7527


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.0507, df = 9, p-value = 0.8299


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.5553, df = 10, p-value = 0.8511


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.5783, df = 11, p-value = 0.9


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.6091, df = 12, p-value = 0.9345


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.8017, df = 13, p-value = 0.9531


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.8033, df = 14, p-value = 0.9712


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.194, df = 15, p-value = 0.9763


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5003, df = 16, p-value = 0.9624


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6424, df = 17, p-value = 0.9508


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.5791, df = 18, p-value = 0.9448


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.5858, df = 19, p-value = 0.9624


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.5925, df = 20, p-value = 0.975


[1] "Leptophlebiidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.047252, df = 1, p-value = 0.8279


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.2355, df = 2, p-value = 0.8889


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.2125, df = 3, p-value = 0.36


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.44, df = 4, p-value = 0.03364


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.784, df = 5, p-value = 0.05584


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 12.529, df = 6, p-value = 0.05116


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.779, df = 7, p-value = 0.05525


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.855, df = 8, p-value = 0.08564


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.86, df = 9, p-value = 0.1274


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.01, df = 10, p-value = 0.1726


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.045, df = 11, p-value = 0.2305


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.309, df = 12, p-value = 0.2814


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.755, df = 13, p-value = 0.3229


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 15.374, df = 14, p-value = 0.3531


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 16.305, df = 15, p-value = 0.3621


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 16.305, df = 16, p-value = 0.4319


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 17.182, df = 17, p-value = 0.4421


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 17.242, df = 18, p-value = 0.5065


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 18.89, df = 19, p-value = 0.4639


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 19.691, df = 20, p-value = 0.4774


[1] "Limnephilidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Lumbriculidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Naididae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.045393, df = 1, p-value = 0.8313


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.35534, df = 2, p-value = 0.8372


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.89288, df = 3, p-value = 0.8271


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.1038, df = 4, p-value = 0.7167


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.1225, df = 5, p-value = 0.8319


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.0533, df = 6, p-value = 0.6695


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.1359, df = 7, p-value = 0.4149


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.1516, df = 8, p-value = 0.5204


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.167, df = 9, p-value = 0.6197


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.1141, df = 10, p-value = 0.6177


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.1888, df = 11, p-value = 0.6963


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.2647, df = 12, p-value = 0.7641


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.5442, df = 13, p-value = 0.8064


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6599, df = 14, p-value = 0.8522


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.428, df = 15, p-value = 0.8541


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.5925, df = 16, p-value = 0.887


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.6355, df = 17, p-value = 0.9182


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.698, df = 18, p-value = 0.9413


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.7033, df = 19, p-value = 0.9599


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.543, df = 20, p-value = 0.9572


[1] "Nemouridae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.021066, df = 1, p-value = 0.8846


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.3944, df = 2, p-value = 0.821


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.1928, df = 3, p-value = 0.7547


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4701, df = 4, p-value = 0.65


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4801, df = 5, p-value = 0.7795


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.6205, df = 6, p-value = 0.5933


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6282, df = 7, p-value = 0.3665


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6399, df = 8, p-value = 0.4694


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6605, df = 9, p-value = 0.5687


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.5198, df = 10, p-value = 0.5782


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6127, df = 11, p-value = 0.6576


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6781, df = 12, p-value = 0.7301


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.9329, df = 13, p-value = 0.778


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.0162, df = 14, p-value = 0.83


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.8681, df = 15, p-value = 0.828


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.059, df = 16, p-value = 0.8635


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.101, df = 17, p-value = 0.8993


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.182, df = 18, p-value = 0.9258


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.187, df = 19, p-value = 0.9482


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 11.002, df = 20, p-value = 0.9462


[1] "Oreoleptidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.07013, df = 1, p-value = 0.7911


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.52795, df = 2, p-value = 0.768


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.133, df = 3, p-value = 0.7691


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.5678, df = 4, p-value = 0.6325


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.2587, df = 5, p-value = 0.5128


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.2488, df = 6, p-value = 0.2985


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.2556, df = 7, p-value = 0.4028


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.2626, df = 8, p-value = 0.5086


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.2698, df = 9, p-value = 0.6091


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.2771, df = 10, p-value = 0.6991


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.2845, df = 11, p-value = 0.7756


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.2922, df = 12, p-value = 0.8377


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.3, df = 13, p-value = 0.886


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.308, df = 14, p-value = 0.9222


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.3162, df = 15, p-value = 0.9483


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.3245, df = 16, p-value = 0.9665


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.333, df = 17, p-value = 0.9788


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.3418, df = 18, p-value = 0.9869


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.3507, df = 19, p-value = 0.9921


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.3598, df = 20, p-value = 0.9953


[1] "Peltoperlidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.0079245, df = 1, p-value = 0.9291


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.016029, df = 2, p-value = 0.992


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.024317, df = 3, p-value = 0.999


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.032793, df = 4, p-value = 0.9999


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.041461, df = 5, p-value = 1


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.050323, df = 6, p-value = 1


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.059385, df = 7, p-value = 1


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.06865, df = 8, p-value = 1


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.078123, df = 9, p-value = 1


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.087809, df = 10, p-value = 1


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.09771, df = 11, p-value = 1


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.10783, df = 12, p-value = 1


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.11818, df = 13, p-value = 1


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.12876, df = 14, p-value = 1


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.13957, df = 15, p-value = 1


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.15063, df = 16, p-value = 1


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.16193, df = 17, p-value = 1


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.17348, df = 18, p-value = 1


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.18528, df = 19, p-value = 1


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.19735, df = 20, p-value = 1


[1] "Perlidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Perlodidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.013862, df = 1, p-value = 0.9063


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.0183, df = 2, p-value = 0.9909


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.044614, df = 3, p-value = 0.9975


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.062965, df = 4, p-value = 0.9995


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.16671, df = 5, p-value = 0.9994


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.90096, df = 6, p-value = 0.9891


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.093, df = 7, p-value = 0.9932


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.1262, df = 8, p-value = 0.9973


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.222, df = 9, p-value = 0.9987


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.6424, df = 10, p-value = 0.962


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.7195, df = 11, p-value = 0.9774


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.7466, df = 12, p-value = 0.9876


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.6597, df = 13, p-value = 0.9188


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.8659, df = 14, p-value = 0.9398


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.9353, df = 15, p-value = 0.9594


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.033, df = 16, p-value = 0.9726


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.8269, df = 17, p-value = 0.9455


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.0272, df = 18, p-value = 0.9591


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.7306, df = 19, p-value = 0.9593


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.7322, df = 20, p-value = 0.9728


[1] "Phryganeidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Pionidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.021066, df = 1, p-value = 0.8846


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.3944, df = 2, p-value = 0.821


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.1928, df = 3, p-value = 0.7547


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4701, df = 4, p-value = 0.65


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4801, df = 5, p-value = 0.7795


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.6205, df = 6, p-value = 0.5933


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6282, df = 7, p-value = 0.3665


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6399, df = 8, p-value = 0.4694


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6605, df = 9, p-value = 0.5687


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.5198, df = 10, p-value = 0.5782


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6127, df = 11, p-value = 0.6576


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.6781, df = 12, p-value = 0.7301


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.9329, df = 13, p-value = 0.778


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.0162, df = 14, p-value = 0.83


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.8681, df = 15, p-value = 0.828


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.059, df = 16, p-value = 0.8635


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.101, df = 17, p-value = 0.8993


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.182, df = 18, p-value = 0.9258


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.187, df = 19, p-value = 0.9482


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 11.002, df = 20, p-value = 0.9462


[1] "Planorbidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Poduridae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Polycentropodidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.055471, df = 1, p-value = 0.8138


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.13775, df = 2, p-value = 0.9334


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.6418, df = 3, p-value = 0.8868


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.90638, df = 4, p-value = 0.9236


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.47, df = 5, p-value = 0.9165


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.9118, df = 6, p-value = 0.8198


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.1705, df = 7, p-value = 0.6392


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.1755, df = 8, p-value = 0.7387


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.1809, df = 9, p-value = 0.8183


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.6932, df = 10, p-value = 0.8403


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.7152, df = 11, p-value = 0.8917


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.7472, df = 12, p-value = 0.9283


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.9426, df = 13, p-value = 0.9482


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.9444, df = 14, p-value = 0.9679


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.3415, df = 15, p-value = 0.9734


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.6388, df = 16, p-value = 0.9589


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.783, df = 17, p-value = 0.9468


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.7305, df = 18, p-value = 0.9403


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.7359, df = 19, p-value = 0.9592


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.7406, df = 20, p-value = 0.9726


[1] "Psychodidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.029216, df = 1, p-value = 0.8643


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.29242, df = 2, p-value = 0.864


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 3.4425, df = 3, p-value = 0.3283


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.424, df = 4, p-value = 0.03386


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.736, df = 5, p-value = 0.05688


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 12.524, df = 6, p-value = 0.05125


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.762, df = 7, p-value = 0.05558


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.84, df = 8, p-value = 0.08604


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 13.846, df = 9, p-value = 0.1279


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.001, df = 10, p-value = 0.1729


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.039, df = 11, p-value = 0.2308


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.273, df = 12, p-value = 0.2836


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 14.681, df = 13, p-value = 0.3277


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 15.246, df = 14, p-value = 0.3616


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 16.237, df = 15, p-value = 0.3665


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 16.242, df = 16, p-value = 0.4362


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 17.149, df = 17, p-value = 0.4443


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 17.214, df = 18, p-value = 0.5085


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 18.749, df = 19, p-value = 0.4731


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 19.533, df = 20, p-value = 0.4875


[1] "Sialidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Simuliidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.022128, df = 1, p-value = 0.8817


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.38926, df = 2, p-value = 0.8231


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.1651, df = 3, p-value = 0.7614


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4735, df = 4, p-value = 0.6494


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4836, df = 5, p-value = 0.779


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.572, df = 6, p-value = 0.5998


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5107, df = 7, p-value = 0.3777


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5229, df = 8, p-value = 0.4814


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5427, df = 9, p-value = 0.5808


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.385, df = 10, p-value = 0.5913


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.4789, df = 11, p-value = 0.6699


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.543, df = 12, p-value = 0.7414


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.7924, df = 13, p-value = 0.7884


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.876, df = 14, p-value = 0.8389


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.7184, df = 15, p-value = 0.8371


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.9141, df = 16, p-value = 0.8711


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.9556, df = 17, p-value = 0.9055


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.039, df = 18, p-value = 0.9306


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.043, df = 19, p-value = 0.9519


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.87, df = 20, p-value = 0.9495


[1] "Sperchontidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.022187, df = 1, p-value = 0.8816


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.38895, df = 2, p-value = 0.8233


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.1636, df = 3, p-value = 0.7617


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4737, df = 4, p-value = 0.6494


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4838, df = 5, p-value = 0.7789


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.5693, df = 6, p-value = 0.6001


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5041, df = 7, p-value = 0.3783


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5164, df = 8, p-value = 0.4821


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5361, df = 9, p-value = 0.5815


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.3776, df = 10, p-value = 0.592


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.4715, df = 11, p-value = 0.6705


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.5356, df = 12, p-value = 0.742


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.7846, df = 13, p-value = 0.789


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.8683, df = 14, p-value = 0.8394


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.7101, df = 15, p-value = 0.8376


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.9061, df = 16, p-value = 0.8715


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.9475, df = 17, p-value = 0.9058


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.032, df = 18, p-value = 0.9309


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.035, df = 19, p-value = 0.9521


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.863, df = 20, p-value = 0.9497


[1] "Taeniopterygidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA


[1] "Tipulidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.057226, df = 1, p-value = 0.8109


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.32206, df = 2, p-value = 0.8513


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.32854, df = 3, p-value = 0.9546


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.76857, df = 4, p-value = 0.9426


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.99066, df = 5, p-value = 0.9633


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.7522, df = 6, p-value = 0.941


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.5781, df = 7, p-value = 0.7113


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.5989, df = 8, p-value = 0.7995


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.5992, df = 9, p-value = 0.8678


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.8917, df = 10, p-value = 0.8243


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 5.9862, df = 11, p-value = 0.8743


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.0559, df = 12, p-value = 0.9132


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.6975, df = 13, p-value = 0.9171


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 6.8742, df = 14, p-value = 0.9395


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.4125, df = 15, p-value = 0.9452


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.4375, df = 16, p-value = 0.9639


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.4857, df = 17, p-value = 0.9763


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5092, df = 18, p-value = 0.9851


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5245, df = 19, p-value = 0.9908


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.3152, df = 20, p-value = 0.9896


[1] "Torrenticolidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.022604, df = 1, p-value = 0.8805


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 0.38443, df = 2, p-value = 0.8251


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 1.1599, df = 3, p-value = 0.7626


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4404, df = 4, p-value = 0.6553


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 2.4497, df = 5, p-value = 0.784


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 4.5629, df = 6, p-value = 0.601


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.551, df = 7, p-value = 0.3738


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5629, df = 8, p-value = 0.4773


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 7.5831, df = 9, p-value = 0.5766


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.4366, df = 10, p-value = 0.5863


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.5281, df = 11, p-value = 0.6654


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.5931, df = 12, p-value = 0.7372


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.8454, df = 13, p-value = 0.7845


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 8.9267, df = 14, p-value = 0.8357


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.7738, df = 15, p-value = 0.8337


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 9.9671, df = 16, p-value = 0.8683


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.006, df = 17, p-value = 0.9034


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.086, df = 18, p-value = 0.9291


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.09, df = 19, p-value = 0.9507


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = 10.912, df = 20, p-value = 0.9485


[1] "Valvatidae"
[[1]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 1, p-value = NA


[[2]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 2, p-value = NA


[[3]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 3, p-value = NA


[[4]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 4, p-value = NA


[[5]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 5, p-value = NA


[[6]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 6, p-value = NA


[[7]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 7, p-value = NA


[[8]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 8, p-value = NA


[[9]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 9, p-value = NA


[[10]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 10, p-value = NA


[[11]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 11, p-value = NA


[[12]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 12, p-value = NA


[[13]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 13, p-value = NA


[[14]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 14, p-value = NA


[[15]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 15, p-value = NA


[[16]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 16, p-value = NA


[[17]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 17, p-value = NA


[[18]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 18, p-value = NA


[[19]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 19, p-value = NA


[[20]]

    Box-Ljung test

data:  resid(auto.arima)
X-squared = NaN, df = 20, p-value = NA

###Spatial Correlation

The following results present the spatial autocorrelation results applied to each variable. A value of P (p-value) less than 0.05 makes it possible to assume that the spatial distribution of the values is subject to non-random spatial aggregation. When the value of P (p-value) is less than 0.05, a positive Moran index (Moran’s I) indicates that the values are aggregated with each other while a negative Moran index indicates that the values are scattered between them.

Warning in nb2listw(lw$neighbours, glist = lw$weights, style = "W",
zero.policy = T): zero sum general weights
[1] "Ameletidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 39.315, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.7992764889     -0.0022624434      0.0004156638 

[1] "Ametropodidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.16596, p-value = 0.8682
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
    -0.0001278787     -0.0022624434      0.0001654212 

[1] "Aturidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 44.644, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.9102098435     -0.0022624434      0.0004177451 

[1] "Baetidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 41.714, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.8504246819     -0.0022624434      0.0004178435 

[1] "Baetiscidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = -0.29697, p-value = 0.7665
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
    -0.0060819580     -0.0022624434      0.0001654212 

[1] "Brachycentridae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 41.56, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.8472160298     -0.0022624434      0.0004177846 

[1] "Capniidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 9.0284, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.1384999363     -0.0022624434      0.0002430805 

[1] "Ceratopogonidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 2.1652, p-value = 0.03038
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
      0.031039496      -0.002262443       0.000236569 

[1] "Chironomidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 43.676, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
      0.890336903      -0.002262443       0.000417660 

[1] "Chloroperlidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 41.758, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.8512705691     -0.0022624434      0.0004177891 

[1] "Edwardsiidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.3479, p-value = 0.7279
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.0022121684     -0.0022624434      0.0001654212 

[1] "Elmidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.3479, p-value = 0.7279
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.0022121684     -0.0022624434      0.0001654212 

[1] "Empididae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 44.572, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.9087386413     -0.0022624434      0.0004177456 

[1] "Enchytraeidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.14209, p-value = 0.887
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
    -0.0004349350     -0.0022624434      0.0001654212 

[1] "Ephemerellidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 36.563, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.7450559213     -0.0022624434      0.0004177552 

[1] "Ephemeridae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.12504, p-value = 0.9005
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
    -0.0004698265     -0.0022624434      0.0002055415 

[1] "Feltriidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.14209, p-value = 0.887
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
    -0.0004349350     -0.0022624434      0.0001654212 

[1] "Glossosomatidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 44.695, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.9112710979     -0.0022624434      0.0004177662 

[1] "Heptageniidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 38.073, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.7758494304     -0.0022624434      0.0004176826 

[1] "Hydrophilidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.14234, p-value = 0.8868
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
    -0.0004317576     -0.0022624434      0.0001654212 

[1] "Hydropsychidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 41.029, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.8364611730     -0.0022624434      0.0004178886 

[1] "Hydroptilidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 44.892, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.9152767101     -0.0022624434      0.0004177451 

[1] "Hydrozetidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.14234, p-value = 0.8868
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
    -0.0004317576     -0.0022624434      0.0001654212 

[1] "Hydryphantidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 42.631, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.8688960397     -0.0022624434      0.0004175777 

[1] "Hygrobatidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.14209, p-value = 0.887
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
    -0.0004349350     -0.0022624434      0.0001654212 

[1] "Lebertiidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 44.66, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.9105320729     -0.0022624434      0.0004177453 

[1] "Lepidostomatidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 40.412, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.8237738009     -0.0022624434      0.0004178072 

[1] "Leptoceridae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.15258, p-value = 0.8787
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
    -0.0002999705     -0.0022624434      0.0001654212 

[1] "Leptohyphidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 41.582, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.8458594699     -0.0022624434      0.0004160023 

[1] "Leptophlebiidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 39.969, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.8146924685     -0.0022624434      0.0004177719 

[1] "Limnephilidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 4.4436, p-value = 8.845e-06
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.0571496854     -0.0022624434      0.0001787607 

[1] "Lumbriculidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 4.7796, p-value = 1.757e-06
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.0620641894     -0.0022624434      0.0001811364 

[1] "Naididae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 44.474, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.9067478064     -0.0022624434      0.0004177555 

[1] "Nemouridae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 12.291, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.2222610133     -0.0022624434      0.0003337159 

[1] "Oreoleptidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.11163, p-value = 0.9111
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
    -0.0003527087     -0.0022624434      0.0002926568 

[1] "Peltoperlidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.14902, p-value = 0.8815
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.0002884215     -0.0022624434      0.0002930126 

[1] "Perlidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.15258, p-value = 0.8787
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
    -0.0002999705     -0.0022624434      0.0001654212 

[1] "Perlodidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 36.738, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.7475336276     -0.0022624434      0.0004165475 

[1] "Phryganeidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.3479, p-value = 0.7279
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.0022121684     -0.0022624434      0.0001654212 

[1] "Pionidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 44.642, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.9101695566     -0.0022624434      0.0004177449 

[1] "Planorbidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.3479, p-value = 0.7279
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.0022121684     -0.0022624434      0.0001654212 

[1] "Poduridae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 5.1671, p-value = 2.377e-07
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.0678631259     -0.0022624434      0.0001841863 

[1] "Polycentropodidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 41.496, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.8440995145     -0.0022624434      0.0004160087 

[1] "Psychodidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 39.043, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.7957454761     -0.0022624434      0.0004177575 

[1] "Sialidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.3479, p-value = 0.7279
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.0022121684     -0.0022624434      0.0001654212 

[1] "Simuliidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 43.13, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
      0.879031290      -0.002262443       0.000417518 

[1] "Sperchontidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 44.642, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.9101667211     -0.0022624434      0.0004177451 

[1] "Taeniopterygidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.14209, p-value = 0.887
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
    -0.0004349350     -0.0022624434      0.0001654212 

[1] "Tipulidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 43.667, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.8902676435     -0.0022624434      0.0004177665 

[1] "Torrenticolidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 44.653, p-value < 2.2e-16
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.9103630342     -0.0022624434      0.0004177265 

[1] "Valvatidae"

    Moran I test under randomisation

data:  dataset.BIO2[, j]  
weights: lwW  n reduced by no-neighbour observations
  

Moran I statistic standard deviate = 0.3479, p-value = 0.7279
alternative hypothesis: two.sided
sample estimates:
Moran I statistic       Expectation          Variance 
     0.0022121684     -0.0022624434      0.0001654212 

##Diversity

###Diversity Metrics

The following table presents the calculation of several diversity metrics per visit.

###Graphs for diversity

##Releases Notes What’s New, Updated, or Fixed in This Release


ACTION: New      ACTION: Updated      ACTION: Fixed


CABIN_vv_biology.Rmd Version 1.1 — February 14, 2018

ACTION: Update — Reduce the numbers of procedures and change their organisation.

CABIN_vv_biology.Rmd Version 1.0 — August 18, 2017

ACTION: Première version.


Developped by Martin Jean and Evelyne Paquette-Boisclair

LS0tDQpkYXRlOiAnMjAxOC0wMi0xNCcNCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazoNCiAgICBkZl9wcmludDogcGFnZWQNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiA0DQogICAgdG9jX2Zsb2F0OiB5ZXMNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBkZl9wcmludDogcGFnZWQNCiAgICB0b2M6IHllcw0KICB3b3JkX2RvY3VtZW50Og0KICAgIHRvYzogeWVzDQp2ZXJzaW9uOiAnMS4xJw0KLS0tDQoNCnwgIVtdKC4uLy4uLy4uL0NvbmZpZ3VyYXRpb24vZ2NfZW4ucG5nKSAgfCAgIVtdKC4uLy4uLy4uL0NvbmZpZ3VyYXRpb24vcmNiYV9sb2dvLnBuZykgfA0KfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06fCAgICAgICAgICAgICAgICAgICAgICAgICAgICANCg0KDQojQ0FCSU4gVkVSSUZJQ0FUSU9OIEFORCBWQUxJREFUSU9OIC0gQklPTE9HSUNBTCBEQVRBDQoNCipFbnZpcm9ubWVudCBhbmQgQ2xpbWF0ZSBDaGFuZ2UgQ2FuYWRhKg0KDQoqQW5hbHlzaXMgcGVyZm9ybWVkIG9uIGByIFN5cy50aW1lKClgKg0KDQoqKioNCg0KVGhpcyByZXBvcnQgcHJlc2VudHMgdGhlIHJlc3VsdHMgZm9yIHZlcmlmaWNhdGlvbiBhbmQgdmFsaWRhdGlvbiBvZiBhIGJpb2xvZ2ljYWwgQ0FCSU4gZGF0YSBmaWxlIGFzc29jaWF0ZWQgdG8gdGhlIHByb2plY3QgKipgciBwYXN0ZShkYXRhc2V0TmFtZSlgKiouDQoNCkluIHRoaXMgYW5hbHlzaXMsIHRoZSBiaW9sb2dpY2FsIGRhdGFzZXQgaXMgY2hlY2tlZCB0byBhbnN3ZXIgdGhlIGZvbGxvd2luZyBxdWVzdGlvbjoNCiAgDQogICsgQXJlIHRoZSBiaW9sb2dpY2FsIGRhdGEgcmVmbGVjdGluZyB0aGUgc2l0ZXMgdmlzaXRlZD8NCg0KVGhpcyBkb2N1bWVudCBpcyBhIFIgbm90ZWJvb2sgd3JpdHRlbiBpbiBbUiBNYXJrZG93bl0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbSkuIFdoZW4geW91IGV4ZWN1dGUgdGhlIGNvZGUgZW1iZWRkZWQgaW4gdGhlIG5vdGVib29rLCB0aGUgcmVzdWx0cyB3aWxsIGFwcGVhciB1bmRlciB0aGUgY29ycmVzcG9uZGluZyBjb2RlLiBUbyBkbyB0aGlzLCBwbGFjZSB5b3VyIGN1cnNvciBpbnNpZGUgYSBjaHVuayAoYm94IHdoaWNoIGNvbnRhaW5zICpSKiBjb2RlKSBhbmQgY2xpY2sgdGhlIGdyZWVuIGFycm93IHRvIHRoZSByaWdodCBvZiBpdCBuYW1lZCAqUnVuIEN1cnJlbnQgQ2h1bmsqIG9yIHByZXNzICpDdHJsK1NoaWZ0K0VudGVyKiAoKkNtZCtTaGlmdCtFbnRlciogaW4gKm1hY09TKikgb24geW91ciBrZXlib2FyZC4gUmVwZWF0IGZvciBlYWNoIGNodW5rLiBBcyB0aGUgY29kZSBjb250YWluZWQgaW4gdGhpcyBub3RlYm9vayBpcyBleGVjdXRlZCwgdGhlIHJlc3VsdHMgd2lsbCBhcHBlYXIgdW5kZXIgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBjaHVua3MgaW4gdGhpcyB3aW5kb3cuIE9uY2UgYWxsIGNvbW1hbmRzIGFyZSBleGVjdXRlZCwgY2xpY2sgdGhlICpQcmV2aWV3KiBidXR0b24gYXQgdGhlIHRvcCBsZWZ0IG9mIHRoaXMgd2luZG93IG9yIHByZXNzIHRoZSAqQ3RybCtTaGlmdCtLKiBrZXlzICgqQ21kK1NoaWZ0K0sqIGluICptYWNPUyopLiBBIG5ldyB3aW5kb3cgd2lsbCBhcHBlYXIgYW5kIHdpbGwgY29udGFpbiB0aGUgcmVwb3J0IG9mIHRoZXNlIHZlcmlmaWNhdGlvbiBhbmQgdmFsaWRhdGlvbiByZXN1bHRzIGZvciB0aGUgYmlvbG9naWNhbCBDQUJJTiBkYXRhLg0KDQoNCg0KIyNSZXF1aXJlbWVudHMNCg0KYGBge3IgMSwgaW5jbHVkZT1GQUxTRX0NCiMjIFJlcXVpcmVkIFBhY2thZ2VzIGFuZCBDdXN0b20gRnVuY3Rpb25zDQpzb3VyY2UoIi4uLy4uLy4uL1JlcXVpcmVkX3BhY2thZ2VzLlIiKQ0Kc291cmNlKCIuLi8uLi8uLi9SZXF1aXJlZF9mdW5jdGlvbnMuUiIpDQoNCg0KIyMgUHJvamVjdCBQcmVmZXJlbmNlcw0Kc291cmNlKCIuLi8uLi8uLi9Db25maWd1cmF0aW9uL3Byb2plY3Rfc2V0dGluZ3MuUiIpDQoNCmBgYA0KDQojI0Rlc2NyaXB0aXZlIFN0YXRpc3RpY3MNCg0KVGhlIGRhdGEgZmlsZSBjb250YWlucyBgciB7bnJvdyhkYXRhc2V0LkJJTyl9YCB2aXNpdHMgKGxpbmVzKSBhbmQgYHIge25jb2woZGF0YXNldC5CSU8pfWAgdmFyaWFibGVzIChjb2x1bW5zKS4NCg0KVGhlIGZvbGxvd2luZyB0YWJsZSBwcmVzZW50cyBhIHN1YnNldCBvZiB0aGUgZGF0YS4NCg0KDQoqKlJlYWRpbmcgQmlvbG9naWNhbCBEYXRhKioNCg0KYHIgZGF0YXRhYmxlKGRhdGFzZXQuQklPLCBmaWx0ZXIgPSAidG9wIiwgcm93bmFtZXM9Riwgb3B0aW9ucyA9IGxpc3Qoc2Nyb2xsWCA9IFRSVUUgKSkgYA0KDQo+ICFbQUNUSU9OOl0oLi4vLi4vLi4vQ29uZmlndXJhdGlvbi9hY3Rpb24ucG5nKQ0KPiAqRXhhbWluZSB0aGUgZm9sbG93aW5nOioNCj4gDQo+DQo+IC0gKkRvZXMgdGhlIGZpbGUgc2VlbSB0byBiZWVuIHJlYWQgY29ycmVjdGx5PyoNCj4gLSAqQXJlIGNvbHVtbnMgbWlzc2luZz8qDQoNCioqTGlzdCBvZiB2aXNpdHMgcHJlc2VudCBpbiB0aGUgYmlvbG9naWNhbCBkYXRhIChJRCBmcm9tIHRoZSBDQUJJTiBkYXRhYmFzZSk6KiogIA0KDQpgciByb3duYW1lcyhkYXRhc2V0LkJJTykgYA0KDQo+ICFbQUNUSU9OOl0oLi4vLi4vLi4vQ29uZmlndXJhdGlvbi9hY3Rpb24ucG5nKQ0KPiAqRXhhbWluZSB0aGUgZm9sbG93aW5nOioNCj4gDQo+IC0gKkNvbXBhcmUgdGhlIGxpc3QgYWJvdmUgd2l0aCB0aGUgZm9sbG93aW5nIHRhYmxlIHdoaWNoIHNob3dzIHRoZSB2aXNpdHMgZnJvbSBhbGwgdGhlIGRhdGEgZm9yIHRoaXMgcHJvamVjdC4qDQoNCg0KYHIgZGF0YXRhYmxlKGRhdGFzZXQuTkFNLCBmaWx0ZXIgPSAidG9wIiwgcm93bmFtZXM9Riwgb3B0aW9ucyA9IGxpc3Qoc2Nyb2xsWCA9IFRSVUUgKSlgDQoNCioqVmFyaWFibGVzIExpc3Q6KiogIA0KDQpgciBjb2xuYW1lcyhkYXRhc2V0LkJJTykgYA0KDQo+ICFbQUNUSU9OOl0oLi4vLi4vLi4vQ29uZmlndXJhdGlvbi9hY3Rpb24ucG5nKQ0KPiAqRXhhbWluZSB0aGUgdmFyaWFibGVzIGFib3ZlIGFuZCBtYWtlIHN1cmUgdGhleSBhcmUgYWxsIHByZXNlbnQuDQoNCg0KIyNHZW5lcmFsIFN0YXRpc3RpY3MNCg0KVGhlIGZvbGxvd2luZyB0YWJsZSBzaG93cyB0aGUgbWFpbiBnZW5lcmFsIHBhcmFtZXRlcnMgcGVyIHZhcmlhYmxlLiBXaGVuIHRoZSByZXN1bHQgb24gdGhlICpCaW5hcnlEYXRhKiBsaW5lIG9mIHRoZSBhcnJheSBpcyAqVFJVRSosIHRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHZhcmlhYmxlIGhhcyBiaW5hcnkgZGF0YS4gSG93ZXZlciwgdGhpcyByZXN1bHQgY2FuIGFsc28gYmUgb2J0YWluZWQgYmVjYXVzZSB0aGUgdmFyaWFibGUgaGFzIG9ubHkgb25lIHRvIHR3byB2YWx1ZXMgYXQgbW9zdC4gVGhlICpOYS52YWx1ZXMqIGxpbmUgaW5kaWNhdGVzIHRoZSBudW1iZXIgb2YgbWlzc2luZyB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuDQoNCioqVGFibGUgb2YgR2VuZXJhbCBTdGF0aXN0aWNzKioNCg0KYGBge3IgMiwgZWNobz1GQUxTRX0NCg0KI1RhYmxlIE9mIEdlbmVyYWwgU3RhdGlzdGljcw0KDQp7c3VtbWFyeS5CSU8gPC0gYXMuZGF0YS5mcmFtZSh0KGRvLmNhbGwoY2JpbmQsIGxhcHBseShkYXRhc2V0LkJJTywgc3VtbWFyeSkpKSkNCnN1bW1hcnkuQklPJFN0ZC5kZXZpYXRpb24gPC0gYXBwbHkoZGF0YXNldC5CSU8sIDIsIHNkLCBuYS5ybSA9IFQpDQpzdW1tYXJ5LkJJTyRMZW5ndGggPC0gY29sU3VtcyghaXMubmEoZGF0YXNldC5CSU8pKQ0Kc3VtbWFyeS5CSU8kQmluYXJ5RGF0YSA8LSBzYXBwbHkoZGF0YXNldC5CSU8sZnVuY3Rpb24oeClsZW5ndGgodW5pcXVlKG5hLm9taXQoeCkpKTw9MikNCnN1bW1hcnkuQklPJE5BLnZhbHVlcyA8LSBjb2xTdW1zKGlzLm5hKGRhdGFzZXQuQklPKSkNCnN1bW1hcnkuQklPJGBOQSdzYCA8LSBOVUxMDQpzdW1tYXJ5LkJJTyA8LSBhcy5kYXRhLmZyYW1lKHQoc3VtbWFyeS5CSU8pKQ0Kc3VtbWFyeS5CSU8NCn0NCmRhdGF0YWJsZShzdW1tYXJ5LkJJTywgZmlsdGVyID0gInRvcCIsIHJvd25hbWVzPUYsIG9wdGlvbnMgPSBsaXN0KHNjcm9sbFggPSBUUlVFICkpDQoNCmBgYA0KDQo+ICFbQUNUSU9OOl0oLi4vLi4vLi4vQ29uZmlndXJhdGlvbi9hY3Rpb24ucG5nKQ0KPiAqRXhhbWluZSB0aGUgZm9sbG93aW5nOioNCj4gDQo+IC0gKkV4YW1pbmUgdGhlIGRhdGEgYW5kIG1ha2Ugc3VyZSBpdCByZWZsZWN0cyByZWFsaXR5LiBFeGFtaW5lIHN0YXRpc3RpY3MgYW5kIGlkZW50aWZ5LCBpZiBwcmVzZW50LCBhbm9tYWxpZXMgd2l0aCBzdGF0aXN0aWNzLioNCg0KDQojI0dlb2dyYXBoaWNhbCBEaXN0cmlidXRpb24NCg0KDQojIyNUYXhhIERpc3RyaWJ1dGlvbg0KDQpUaGUgZm9sbG93aW5nIGdyYXBocyBzaG93IHRoZSBsb2NhdGlvbiAobGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSkgYWluc2kgcXVlIGwnYWJvbmRhbmNlIGVuIHRheG9ucyBkZXMgc2l0ZXMgb2JzZXJ2w6llcyBkYW5zIGxlIGZpY2hpZXIgZGUgZG9ubsOpZXMgcG91ciBjaGFxdWUgdGF4b24uDQoNCj4gIVtBQ1RJT046XSguLi8uLi8uLi9Db25maWd1cmF0aW9uL2FjdGlvbi5wbmcpDQo+ICpFeGFtaW5lIHRoZSBmb2xsb3dpbmc6Kg0KPiANCj4gLSAqSXMgdGhlIGdlb2dyYXBoaWNhbCBkaXN0cmlidXRpb24gb2YgdGF4YSBzaG93aW5nIGFub21hbGllcz8qDQo+IC0gKklzIHRoZXJlIGRhdGEgdGhhdCBhcmUgb2RkPyoNCg0KDQpgYGB7ciAzLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KI0dlb2dyYXBoaWNhbCBkaXN0cmlidXRpb24gb2YgdGF4YQ0KDQpkYXRhc2V0LkdFTjIgPC0gZGF0YXNldC5HRU4NCmRhdGFzZXQuQklPMiA8LSBsZWZ0X2pvaW4oZGF0YXNldC5CSU8yLCBkYXRhc2V0LkdFTjJbLGMoIlNhbXBsZUlkIiwgIkxvbmdpdHVkZSIsICJMYXRpdHVkZSIpXSwgYnkgPSAiU2FtcGxlSWQiKQ0KaWYoIkxvbmdpdHVkZS54IiAlaW4lIGNvbG5hbWVzKGRhdGFzZXQuQklPMikpe2NvbG5hbWVzKGRhdGFzZXQuQklPMilbd2hpY2goY29sbmFtZXMoZGF0YXNldC5CSU8yKSA9PSAiTG9uZ2l0dWRlLngiKV0gPC0gIkxvbmdpdHVkZSJ9DQppZigiTGF0aXR1ZGUueCIgJWluJSBjb2xuYW1lcyhkYXRhc2V0LkJJTzIpKXtjb2xuYW1lcyhkYXRhc2V0LkJJTzIpW3doaWNoKGNvbG5hbWVzKGRhdGFzZXQuQklPMikgPT0gIkxhdGl0dWRlLngiKV0gPC0gIkxhdGl0dWRlIn0NCmlmKCJMb25naXR1ZGUueSIgJWluJSBjb2xuYW1lcyhkYXRhc2V0LkJJTzIpKXtkYXRhc2V0LkJJTzIkTG9uZ2l0dWRlLnkgPC0gTlVMTH0NCmlmKCJMYXRpdHVkZS55IiAlaW4lIGNvbG5hbWVzKGRhdGFzZXQuQklPMikpe2RhdGFzZXQuQklPMiRMYXRpdHVkZS55IDwtIE5VTEx9DQoNCnNpemUgPC0gZGF0YXNldC5CSU8yWygyOm5jb2woZGF0YXNldC5CSU8yKSktMl0NCg0KZm9yKGkgaW4gMjoobmNvbChkYXRhc2V0LkJJTzIpLTIpKXsNCmdyYXBoLmdlby5hYiA8LSBnZ3Bsb3QoZGF0YXNldC5CSU8yLCBhZXMoZGF0YXNldC5CSU8yJExvbmdpdHVkZSwgZGF0YXNldC5CSU8yJExhdGl0dWRlKSkgKw0KICBnZW9tX3BvaW50KHNoYXBlID0gMjEsIGFlcyhzaXplID0gc2l6ZVssaV0pKSArICNCcm9rZW4gb24gZ2dwbG90MiAzLjIuMCwgMy4xLjAsIDMuMC4wDQogIGdndGl0bGUocGFzdGUoIkRpc3RyaWJ1dGlvbiBvZiIsIGNvbG5hbWVzKGRhdGFzZXQuQklPMltpXSkpKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArDQogIHNjYWxlX3NpemUocmFuZ2UgPSBjKDEsMTApLCBuYW1lID0gIkFidW5kYW5jZSIpDQpncmFwaC5nZW8uYWINCnByaW50KGdyYXBoLmdlby5hYikNCn0NCg0Kcm0oc2l6ZSkNCnJtKGRhdGFzZXQuR0VOMikNCg0KYGBgDQoNCg0KIyMjUmljaG5lc3MgRGlzdHJpYnV0aW9uDQoNClRoZSBmb2xsb3dpbmcgZ3JhcGhzIHNob3cgdGhlIGxvY2F0aW9uIChsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlKSBhbmQgdGF4YSByaWNobmVzcyBvbiBzaXRlcy4NCg0KPiAhW0FDVElPTjpdKC4uLy4uLy4uL0NvbmZpZ3VyYXRpb24vYWN0aW9uLnBuZykNCj4gKkV4YW1pbmUgdGhlIGZvbGxvd2luZzoqDQo+IA0KPiANCj4gLSAqSXMgdGhlIGdlb2dyYXBoaWNhbCBkaXN0cmlidXRpb24gb2YgcmljaG5lc3Mgc2hvd2luZyBhbm9tYWxpZXM/Kg0KPiAtICpBcmUgc29tZSByaWNobmVzcyBtZWFzdXJlcyBvdXQgb2YgdGhlIG9yZGluYXJ5PyoNCj4gLSAqSXMgdGhlcmUgYSBwYXR0ZXJuIGluIHRheGEgcmljaG5lc3M/Kg0KDQoNCmBgYHtyIDQsIGVjaG89RkFMU0V9DQojR2VvZ3JhcGhpY2EgRGlzdHJpYnV0aW9uIG9mIHRheGEgcmljaG5lc3MNCg0KZGF0YXNldC5CSU8yJHJpY2huZXNzIDwtIGFwcGx5KGRhdGFzZXQuQklPID4gMCwgMSwgc3VtLCBuYS5ybT1UUlVFKQ0KZGF0YXNldC5TUEEyIDwtIGRhdGFzZXQuU1BBDQpkYXRhc2V0LlNQQTIgPC0gbGVmdF9qb2luKGRhdGFzZXQuU1BBMiwgZGF0YXNldC5CSU8yWyxjKCJTYW1wbGVJZCIsICJyaWNobmVzcyIpXSwgYnkgPSAiU2FtcGxlSWQiKQ0KDQppZigicmljaG5lc3MueCIgJWluJSBjb2xuYW1lcyhkYXRhc2V0LlNQQTIpKXtjb2xuYW1lcyhkYXRhc2V0LlNQQTIpW3doaWNoKGNvbG5hbWVzKGRhdGFzZXQuU1BBMikgPT0gInJpY2huZXNzLngiKV0gPC0gInJpY2huZXNzIn0NCmlmKCJyaWNobmVzcy55IiAlaW4lIGNvbG5hbWVzKGRhdGFzZXQuU1BBMikpe2RhdGFzZXQuU1BBMiRyaWNobmVzcy55IDwtIE5VTEx9DQoNCmdyYXBoLmdlby5zcCA8LSBnZ3Bsb3QoZGF0YXNldC5TUEEyLCBhZXMoZGF0YXNldC5TUEEyJExvbmdpdHVkZSwgZGF0YXNldC5TUEEyJExhdGl0dWRlKSkgKw0KICBnZW9tX3BvaW50KHNoYXBlID0gMjEsIGFlcyhzaXplID0gZGF0YXNldC5TUEEyJHJpY2huZXNzKSwgbmEucm0gPSBUUlVFKSArDQogIGdndGl0bGUocGFzdGUoIkdlb2dyYXBoaWNhbCBEaXN0cmlidXRpb24gb2YgVGF4YSBSaWNobmVzcyIpKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArDQogIHNjYWxlX3NpemUocmFuZ2UgPSBjKDEsMTApLCBuYW1lID0gIlRheGEgUmljaG5lc3MiKQ0KZ3JhcGguZ2VvLnNwDQoNCmBgYA0KDQoNClRoZSBmb2xsb3dpbmcgaW50ZXJhY3RpdmUgbWFwIGlsbHVzdHJhdGVzIHRoZSBzYW1lIGRhdGEgYXMgdGhlIGFib3ZlIGdyYXBoLiBDbGljayBvbiBhIHBvaW50IHRvIHNob3cgdGhlIHRheGEgcmljaG5lc3MuDQoNCmBgYHtyIDUsIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NS41LCBmaWcud2lkdGg9OC41LCBtZXNzYWdlPUZBTFNFLCBpbmNsdWRlPVRSVUV9DQojTWFwIG9mIHRheGEgcmljaG5lc3MNCg0KZGF0YXNldC5OQU0yIDwtIGRhdGFzZXQuTkFNDQpkYXRhc2V0Lk5BTTIkU2l0ZV9EYXRlX051bWJlciA8LSBwYXN0ZShkYXRhc2V0Lk5BTTIkU2l0ZSwgZGF0YXNldC5OQU0yJFNhbXBsZURhdGUsIGRhdGFzZXQuTkFNMiRTYW1wbGVJZCkNCmRhdGFzZXQuU1BBMiA8LSBkYXRhc2V0LlNQQQ0KZGF0YXNldC5TUEEyIDwtIGxlZnRfam9pbihkYXRhc2V0LlNQQTIsIGRhdGFzZXQuTkFNMlssYygiU2FtcGxlSWQiLCAiU2l0ZV9EYXRlX051bWJlciIpXSwgYnkgPSAiU2FtcGxlSWQiKQ0KZGF0YXNldC5TUEEyIDwtIGxlZnRfam9pbihkYXRhc2V0LlNQQTIsIGRhdGFzZXQuTkFNMlssIGMoIlNhbXBsZUlkIiwgIlNpdGUiLCAiU2FtcGxlRGF0ZSIpXSwgYnkgPSAiU2FtcGxlSWQiKQ0KZGF0YXNldC5TUEEyIDwtIGxlZnRfam9pbihkYXRhc2V0LlNQQTIsIGRhdGFzZXQuQklPMlssIGMoIlNhbXBsZUlkIiwgInJpY2huZXNzIildLCBieSA9ICJTYW1wbGVJZCIpDQpkYXRhc2V0LlNQQTIkU2l0ZV9EYXRlX051bWJlciA8LSBwYXN0ZShkYXRhc2V0LlNQQTIkU2l0ZSwgIl8iLCBkYXRhc2V0LlNQQTIkU2FtcGxlRGF0ZSwgIl8iLCBkYXRhc2V0LlNQQTIkU2FtcGxlSWQpDQpkYXRlcyA8LSBhcy5EYXRlKGRhdGFzZXQuU1BBMiRTYW1wbGVEYXRlLCAiJVktJW0tJWQiKQ0KZGF0YXNldC5TUEEyJFllYXIgPC0gc3RyZnRpbWUocGFyc2VfZGF0ZV90aW1lKGFzLmNoYXJhY3RlcihkYXRlcyksICIlWS0lbS0lZCIpLCAiJXkiKQ0KZGF0YXNldC5TUEEyJFNpdGVfWWVhciA8LSBwYXN0ZShkYXRhc2V0LlNQQTIkU2l0ZSwgIl8iLCBkYXRhc2V0LlNQQTIkWWVhcikNCg0KY2FiaW5Qb2ludHMgPC0gU3BhdGlhbFBvaW50c0RhdGFGcmFtZShjb29yZHMgPSBuYS5vbWl0KGRhdGFzZXQuU1BBWywgMToyXSksIGRhdGEgPSBuYS5vbWl0KGRhdGFzZXQuU1BBWywxOjJdKSkNCg0KZ2V0Q29sb3IyIDwtIGZ1bmN0aW9uKGRhdGFzZXQuU1BBMikgew0KICBzYXBwbHkoZGF0YXNldC5TUEEyJFNhbXBsZURhdGUsIGZ1bmN0aW9uKFNhbXBsZURhdGUpIHsNCiAgaWYoU2FtcGxlRGF0ZSA8PSAiMjAwNS0xMi0zMSIpIHsNCiAgICAiZ3JlZW4iDQogIH0gZWxzZSBpZihTYW1wbGVEYXRlIDw9ICIyMDA2LTEyLTMxIikgew0KICAgICJ5ZWxsb3ciDQogIH0gZWxzZSBpZihTYW1wbGVEYXRlIDw9ICIyMDA3LTEyLTMxIikgew0KICAgICJkYXJrb3JhbmdlIg0KICB9IGVsc2UgaWYoU2FtcGxlRGF0ZSA8PSAiMjAwOC0xMi0zMSIpIHsNCiAgICAicmVkIg0KICB9IGVsc2UgaWYoU2FtcGxlRGF0ZSA8PSAiMjAwOS0xMi0zMSIpIHsNCiAgICAicGluayINCiAgfSBlbHNlIGlmKFNhbXBsZURhdGUgPD0gIjIwMTAtMTItMzEiKSB7DQogICAgImJsdWUiDQogIH0gZWxzZSBpZihTYW1wbGVEYXRlIDw9ICIyMDExLTEyLTMxIikgew0KICAgICJkYXJrZ3JlZW4iDQogIH0gZWxzZSBpZihTYW1wbGVEYXRlIDw9ICIyMDEyLTEyLTMxIikgew0KICAgICJjeWFuIg0KICB9IGVsc2UgaWYoU2FtcGxlRGF0ZSA8PSAiMjAxMy0xMi0zMSIpIHsNCiAgICAiZGVlcHBpbmsiDQogIH0gZWxzZSBpZihTYW1wbGVEYXRlIDw9ICIyMDE0LTEyLTMxIikgew0KICAgICJsaWdodGJsdWUiDQogIH0gZWxzZSBpZihTYW1wbGVEYXRlIDw9ICIyMDE1LTEyLTMxIikgew0KICAgICJsaWdodHNlYWdyZWVuIg0KICB9IGVsc2UgaWYoU2FtcGxlRGF0ZSA8PSAiMjAxNi0xMi0zMSIpIHsNCiAgICAiZGFya3Zpb2xldCINCiAgfSBlbHNlIGlmKFNhbXBsZURhdGUgPD0gIjIwMTctMTItMzEiKSB7DQogICAgImRhcmtyZWQiDQogIH0gZWxzZSBpZihTYW1wbGVEYXRlIDw9ICIyMDE4LTEyLTMxIikgew0KICAgICJjYWRldGJsdWUiDQogIH0gZWxzZSBpZihTYW1wbGVEYXRlIDw9ICIyMDE5LTEyLTMxIikgew0KICAgICJibGFjayINCiAgfSBlbHNlIGlmKFNhbXBsZURhdGUgPD0gIjIwMjAtMTItMzEiKSB7DQogICAgImdyYXkiDQogIH0gZWxzZSB7DQogICAgImJyb3duIg0KICB9IH0pDQp9IA0KDQojZGF0ZXMgPC0gYXMuRGF0ZShkYXRhc2V0LlNQQTIkU2FtcGxlRGF0ZSwgIiVZLSVtLSVkIikgDQojZGF0YXNldC5TUEEyJFllYXIgPC0gc3RyZnRpbWUocGFyc2VfZGF0ZV90aW1lKGFzLmNoYXJhY3RlcihkYXRlcyksICIlWS0lbS0lZCIpLCAiJVkiKQ0KICANCiAgICBsZWFmbGV0KGRhdGEgPSBkYXRhc2V0LlNQQTIpICU+JSBhZGRQcm92aWRlclRpbGVzKHByb3ZpZGVycyRFc3JpLldvcmxkVG9wb01hcCkgJT4lIGFkZENpcmNsZU1hcmtlcnMofkxvbmdpdHVkZSwgfkxhdGl0dWRlLCBwb3B1cCA9IHBhc3RlKCAiU2l0ZV9ZZWFyOiIsIGRhdGFzZXQuU1BBMiRTaXRlX1llYXIsICI8YnI+IiwgIlJpY2huZXNzOiAiLCBkYXRhc2V0LlNQQTIkcmljaG5lc3MsICI8YnI+IiksIGxhYmVsID0gKGRhdGFzZXQuU1BBMiRTaXRlX1llYXIpLCByYWRpdXMgPSBkYXRhc2V0LlNQQTIkcmljaG5lc3MsIGNvbG9yID0gZ2V0Q29sb3IyKGRhdGFzZXQuU1BBMiksIHN0cm9rZSA9IEYsIGZpbGxPcGFjaXR5ID0gMC41LCBjbHVzdGVyT3B0aW9ucyA9IG1hcmtlckNsdXN0ZXJPcHRpb25zKCkpICU+JSBhZGRMZWdlbmQoDQogIHBvc2l0aW9uID0gJ2JvdHRvbXJpZ2h0JywNCiAgY29sb3JzID0gcGFsZXR0ZSgpLA0KICBsYWJlbHMgPSBwYWxldHRlKCksDQogIG9wYWNpdHkgPSAxLA0KICB0aXRsZSA9ICdMZWdlbmQnKQ0KICANCnJtKGRhdGFzZXQuU1BBMikNCg0KYGBgDQoNCg0KIyNQcmVzZW5jZSBvZiBPdXRsaWVycw0KDQojIyNEaXNwZXJzaW9uIG9mIE9ic2VydmVkIFZhbHVlcw0KDQpUaGUgZm9sbG93aW5nIHNjYXR0ZXJwbG90cyBwcmVzZW50IHRoZSB2YWx1ZSBvZiB0aGUgdGF4YSBhYnVuZGFuY2VzIG9ic2VydmVkIGluIHRoZSBkYXRhc2V0LiBCZWxvdyB0aGUgeC1heGlzIGlzIHRoZSB2aXNpdCBpZGVudGlmaWVyIGZvciB0aGUgY29ycmVzcG9uZGluZyBvYnNlcnZlZCB2YWx1ZSwgbmFtZWx5IHRoZSBuYW1lIG9mIHRoZSBzaXRlIGZyb20gd2hpY2ggdGhlIGRhdGEgb3JpZ2luYXRlZCwgaXRzIHNhbXBsaW5nIGRhdGUgYW5kIHRoZSBzYW1wbGluZyBudW1iZXIuDQoNCj4gIVtBQ1RJT046XSguLi8uLi8uLi9Db25maWd1cmF0aW9uL2FjdGlvbi5wbmcpDQo+ICpFeGFtaW5lIHRoZSBmb2xsb3dpbmc6Kg0KPiANCj4gDQo+IC0gKklzIHRoZSBkaXN0cmlidXRpb24gb2YgYWJ1bmRhbmNlIHZhbHVlcyBpbmRpY2F0aW5nIGFuIGVjb2xvZ2ljYWwgcGhlbm9tZW5vbiBvciBhIHBvdGVudGlhbCBwcm9ibGVtIChkaXN0dXJiYW5jZSk/Kg0KPiAtICpBcmUgc29tZSB0YXhhIHZlcnkgcmFyZSBvciB2ZXJ5IGZyZXF1ZW50PyoNCj4gLSAqSXMgYSBwcm9ibGVtIHdpdGggYWJ1bmRhbnQgZGF0YSBhcHBhcmVudD8qDQoNCg0KYGBge3IgNiwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRX0NCiNTY2F0dGVycGxvdHMgb2Ygb2JzZXJ2ZWQgdmFsdWVzDQoNCg0KZGF0YXNldC5CSU8yIDwtIGxlZnRfam9pbihkYXRhc2V0LkJJTzIsIGRhdGFzZXQuTkFNMlssYygiU2FtcGxlSWQiLCAiU2l0ZV9EYXRlX051bWJlciIpXSwgYnkgPSAiU2FtcGxlSWQiKQ0KDQpmb3IoaiBpbiAyOihuY29sKGRhdGFzZXQuQklPMiktNCkpew0KcGxvdC5hYiA8LSBnZ3Bsb3QoZGF0YXNldC5CSU8yLCBhZXMoeCA9IGRhdGFzZXQuQklPMiRTaXRlX0RhdGVfTnVtYmVyLCB5ID0gZGF0YXNldC5CSU8yWyxqXSkpICsNCiAgZ2VvbV9wb2ludCgpICsNCiAgbGFicyh5ID0gIkFib25kdW5jZSIsIHggPSAiVmlzaXQiKSArDQogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gOTAsIHZqdXN0ID0gLTAuMDUpKSArDQogICBzY2FsZV94X2Rpc2NyZXRlKGJyZWFrcyA9ICIiLCBsYWJlbHMgPSAiIiwgbmEudmFsdWUgPSBOQSkgKw0KICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkgKw0KICBnZ3RpdGxlKHBhc3RlKCJBYnVuZGFuY2Ugb2YiLCBjb2xuYW1lcyhkYXRhc2V0LkJJTzJbal0pLCAicGVyIHZpc2l0IikpDQpwbG90LmFiDQpwcmludChwbG90LmFiKQ0KfQ0KDQpgYGANCg0KIyMjQm94cGxvdHMgb2YgT2JzZXJ2ZWQgYW5kIFRyYW5zZm9ybWVkIFZhbHVlcw0KDQpUaGUgZmlyc3QgYm94cGxvdCAobGVmdCkgc2hvd3MgdGhlIGRpc3RyaWJ1dGlvbiBvZiBjb250aW51b3VzIHZhcmlhYmxlIHZhbHVlcyBvYnNlcnZlZCBpbiB0aGUgZGF0YSBmaWxlLCB0aGUgbWlkZGxlIGlsbHVzdHJhdGVzIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIGxvZ2FyaXRobWljLXRyYW5zZm9ybWVkIHZhbHVlcywgYW5kIHRoZSB0aGlyZCBib3ggcGxvdCAocmlnaHQpIHNob3dzIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIHNxdWFyZS1yb290LXRyYW5zZm9ybWVkIHZhbHVlcy4NCg0KPiAhW0FDVElPTjpdKC4uLy4uLy4uL0NvbmZpZ3VyYXRpb24vYWN0aW9uLnBuZykNCj4gKkV4YW1pbmUgdGhlIGZvbGxvd2luZywgcHV0dGluZyB5b3VyIGF0dGVudGlvbiB0byBwb2ludHMgd2l0aCBhIGxhYmVsIChpZiBwcmVzZW50KToqDQo+IA0KPiAtICpEbyBkYXRhIHNlZW0gb3V0IG9mIHRoZSBvcmRpbmFyeT8qDQo+IC0gKklzIGEgZGF0YSB0cmFuc2Zvcm1hdGlvbiBzaG93aW5nIGEgYmV0dGVyIHN0YXRpc3RpY2FsIGRpc3RyaWJ1dGlvbiB0aGFuIHJhdyBkYXRhPyoNCg0KDQoNCmBgYHtyIDcsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojQm94cGxvdHMgZm9yIG9ic2VydmVkIGFuZCB0cmFuc2Zvcm1lZCB2YWx1ZXMNCg0KZm9yKGkgaW4gMTpuY29sKGRhdGFzZXQuQklPKSl7DQpib3guYWIuMSA8LSBxcGxvdCh5ID0gZGF0YXNldC5CSU9bLGldLCB4ID0gIiIsIGdlb20gPSAiYm94cGxvdCIsIHlsYWIgPSAiQWJ1bmRhbmNlIikgKw0KICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkgKw0KICBnZ3RpdGxlKCJSYXcgRGF0YSIpDQpib3guYWIuMiA8LSBxcGxvdCh5ID0gZGF0YXNldC5CSU9bLGldLCB4ID0gIiIsIGdlb20gPSAiYm94cGxvdCIsIHlsYWIgPSAiTG9nKEFidW5kYW5jZSkiLCBsb2cgPSAieSIpICsNCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpICsNCiAgZ2d0aXRsZSgiTG9nIikNCmJveC5hYi4zIDwtIHFwbG90KHkgPSBzcXJ0KGRhdGFzZXQuQklPWyxpXSksIHggPSAiIiwgZ2VvbSA9ICJib3hwbG90IiwgeWxhYiA9ICJTcXJ0KEFidW5kYW5jZSkiKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArDQogIGdndGl0bGUoIlNxcnQiKQ0KDQpncmlkLmFycmFuZ2UoYm94LmFiLjEsIGJveC5hYi4yLCBib3guYWIuMywgbmNvbCA9IDMsIHRvcCA9IGNvbG5hbWVzKGRhdGFzZXQuQklPW2ldKSkNCn0NCg0KYGBgDQoNCg0KIyMjSWRlbnRpZmljYXRpb24gb2YgcG90ZW50aWFsIG91dGxpZXJzDQoNClRoZSBmaXJzdCBib3hwbG90IChsZWZ0KSBzaG93cyB0aGUgZGlzdHJpYnV0aW9uIG9mIGFidW5kYW5jZSB2YWx1ZXMgb2JzZXJ2ZWQgaW4gdGhlIGRhdGFzZXQgYW5kIHRoZSBkaXNwZXJzaW9uIGRpYWdyYW0gKHJpZ2h0KSBzaG93IHRoZSBkaXN0cmlidXRpb24gb2YgYWJ1bmRhbmNlIHZhbHVlcyBpbiB0aGUgb3JkZXIgaW4gd2hpY2ggdGhleSBhcHBlYXIgaW4gdGhpcyBmaWxlLiBEYXRhIHdpdGggaWRlbnRpZmljYXRpb24gYnkgdGhlaXIgaWRlbnRpZmllciBvbiB0aGUgZGlhZ3JhbXMgYXJlIHBvdGVudGlhbGx5IG91dGxpZXJzIGNvbnRhaW5lZCBpbiB0aGUgZGF0YXNldC4gVGhlIG1ldGhvZCB1c2VkIHRvIGlkZW50aWZ5IHBvdGVudGlhbGx5IG91dGxpZXJzIGlzIHRoZSBpbnRlcnF1YW50aWxlIHJhbmdlICgqSVFSKikuIFRoZSBJUVIgaXMgY2FsY3VsYXRlZCBhcyBmb2xsb3dzOg0KDQpgSVFSKHgpID0gcXVhbnRpbGUoeCwgMy80KSAtIHF1YW50aWxlKHgsIDEvNClgDQoNCg0KUG90ZW50aWFsIG91dGxpZXJzIGFyZSBkZWZpbmVkIGFzIHZhbHVlcyBiZWxvdyAqUTEgLSAxLDUgSVFSKiBvciBhYm92ZSAqUTMgKyAxLDUgSVFSKi4NCg0KVGhlIGlkZW50aWZpZXIgb2YgdGhlIHZpc2l0IGNvcnJlc3BvbmRzIHRvIHRoZSBuYW1lIG9mIHRoZSBzaXRlIGZyb20gd2hpY2ggdGhlIGRhdGEgb3JpZ2luYXRlZCwgaXRzIHNhbXBsaW5nIGRhdGUgYW5kIHRoZSBzYW1wbGUgbnVtYmVyIGZvciB0aGlzIHZpc2l0Lg0KDQpUaGUgaW50ZXJwcmV0YXRpb24gb2YgQ2xldmVsYW5kIGRvdHBsb3QgaXMgZG9uZSBieSBsb29raW5nIGF0IHBvaW50cyB0aGF0IHN0aWNrIG91dCBvbiB0aGUgcmlnaHQtaGFuZCBzaWRlLCBvciBvbiB0aGUgbGVmdC1oYW5kIHNpZGUuIFRoZXkgYXJlIG9ic2VydmVkIHZhbHVlcyB0aGF0IGFyZSBjb25zaWRlcmFibGUgbGFyZ2VyLCBvciBzbWFsbGVyLCB0aGFuIHRoZSBtYWpvcml0eSBvZiB0aGUgb2JzZXJ2YXRpb25zLCBhbmQgcmVxdWlyZSBmdXJ0aGVyIGludmVzdGlnYXRpb24uIFdoZW4gdGhlIG1vc3QgbGlrZWx5IGV4cGxhbmF0aW9uIGlzIHRoYXQgdGhlIGV4dHJlbWUgb2JzZXJ2YXRpb25zIGFyZSBtZWFzdXJlbWVudCBlcnJvcnMsIHRoZXkgc2hvdWxkIGJlIGRyb3BwZWQgYmVjYXVzZSB0aGVpciBwcmVzZW5jZSBpcyBsaWtlbHkgdG8gZG9taW5hdGUgdGhlIGFuYWx5c2lzLiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhlIHJlbW92YWwgb2YgdGhlc2UgdmFsdWVzIGFyZSBub3QgYW4gb3B0aW9uLCBhIGRhdGEgdHJhbnNmb3JtYXRpb24gc2hvdWxkIGJlIGNvbnNpZGVyZWQuDQoNCj4gIVtBQ1RJT046XSguLi8uLi8uLi9Db25maWd1cmF0aW9uL2FjdGlvbi5wbmcpDQo+ICpFeGFtaW5lIHRoZSBmb2xsb3dpbmc6Kg0KPiANCj4gDQo+IC0gKkFyZSBleHRyZW1lIHZhbHVlcyBvbiB0aGUgYm94cGxvdHMgY291bGQgYmUgY29uc2lkZXJlZCBhcyBvdXRsaWVycz8qDQo+IC0gKkFyZSB0aG9zZSBzYW1lIHBvaW50cyBvbiBDbGV2ZWxhbmQgZG90cGxvdCBpc29sYXRlZCAob24gdGhlIGxlZnQgb3IgcmlnaHQpPyoNCj4gLSAqU2hvdWxkIHNvbWUgdGF4YSAodG9vIHJhcmUgb3IgdG9vIGFidW5kYW50KSBub3QgYmUgY29uc2lkZXJlZCBpbiBmdXJ0aGVyIGFuYWx5c2lzPyoNCg0KDQpgYGB7ciA4LCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KI0lkZW50aWZpY2F0aW9uIG9mIHBvdGVudGlhbCBvdXRsaWVycw0KDQpmb3IgKGogaW4gMjoobmNvbChkYXRhc2V0LkJJTzIpLTQpKSB7DQogIGJveHBsb3QgPC0gZ2dwbG90KGRhdGEgPSBkYXRhc2V0LkJJTzIsIGFlcyh4ID0gIiIsIHkgPSBkYXRhc2V0LkJJTzJbLGpdKSkgKw0KICAgIGdlb21fYm94cGxvdCgpICsNCiAgICB5bGFiKCJBYnVuZGFuY2UiKSArDQogICAgeGxhYigiIikgKw0KICAgIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArDQogICAgZ2d0aXRsZSgiQm94cGxvdCIpICsNCiAgICBnZW9tX3RleHQoYWVzKGxhYmVsID0gaWZlbHNlKGRhdGFzZXQuQklPMlssal0gPCBxdWFudGlsZShkYXRhc2V0LkJJTzJbLGpdLCBwcm9icz1jKC4yNSksIG5hLnJtID0gVCkgLSAxLjUqSVFSKGRhdGFzZXQuQklPMlssal0sIG5hLnJtID0gVCl8ZGF0YXNldC5CSU8yWyxqXSA+IHF1YW50aWxlKGRhdGFzZXQuQklPMlssal0sIHByb2JzPWMoLjc1KSwgbmEucm0gPSBUKSArIDEuNSpJUVIoZGF0YXNldC5CSU8yWyxqXSwgbmEucm0gPSBUKSwgZGF0YXNldC5CSU8yJFNpdGVfRGF0ZV9OdW1iZXIsICIiKSksIGhqdXN0ID0gLTAuMDUsIHNpemUgPSAzKQ0KDQogIGRvdGNoYXJ0IDwtIGdncGxvdChkYXRhID0gZGF0YXNldC5CSU8yLCBhZXMoeSA9IHNlcShkYXRhc2V0LkJJTzJbLGpdKSwgeCA9IGRhdGFzZXQuQklPMlssal0sIG5hLnJtID0gVCkpICsNCiAgICBnZW9tX3BvaW50KG5hLnJtID0gVCkgKw0KICAgIHlsYWIoIk9yZGVyIG9mIHRoZSBkYXRhIikgKw0KICAgIHhsYWIoIkFidW5kYW5jZSIpICsNCiAgICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkgKw0KICAgIGdndGl0bGUoIkNsZXZlbGFuZCBEb3RwbG90IikgKw0KICAgIGdlb21fdGV4dChhZXMobGFiZWwgPSBpZmVsc2UoZGF0YXNldC5CSU8yWyxqXSA8IHF1YW50aWxlKGRhdGFzZXQuQklPMlssal0sIHByb2JzPWMoLjI1KSwgbmEucm0gPSBUKSAtIDEuNSpJUVIoZGF0YXNldC5CSU8yWyxqXSwgbmEucm0gPSBUKXxkYXRhc2V0LkJJTzJbLGpdID4gcXVhbnRpbGUoZGF0YXNldC5CSU8yWyxqXSwgcHJvYnM9YyguNzUpLCBuYS5ybSA9IFQpICsgMS41KklRUihkYXRhc2V0LkJJTzJbLGpdLCBuYS5ybSA9IFQpLCBkYXRhc2V0LkJJTzIkU2l0ZV9EYXRlX051bWJlciwgIiIpKSwgaGp1c3QgPSAtMC4wNSwgbnVkZ2VfeSA9IDIsIHNpemUgPSAzKQ0KICAgICAgICANCiAgZ3JpZC5hcnJhbmdlKGJveHBsb3QsIGRvdGNoYXJ0LCBuY29sID0gMiwgdG9wID0gY29sbmFtZXMoZGF0YXNldC5CSU8yW2pdKSkNCn0NCmBgYA0KDQpUaGUgZm9sbG93aW5nIGxpc3Qgc2hvd3MgYW5vdGhlciB3YXkgb2YgaWRlbnRpZnlpbmcgcG90ZW50aWFsIG91dGxpZXJzIGNvbnRhaW5lZCBpbiB0aGUgZGF0YXNldCBmb3IgZWFjaCB2YXJpYWJsZS4gV2hlbiB0aGUgaWRlbnRpZmllciBvZiBhIGRhdGEgaXRlbSBpcyBpbmRpY2F0ZWQgdGhlcmVpbiwgdGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGlzIGRhdGEgcmVwcmVzZW50cyBwb3RlbnRpYWxseSBhYmVycmFudCBkYXRhIGNvbnRhaW5lZCBpbiB0aGUgZGF0YSBmaWxlLiAqIiIqIGluZGljYXRlcyBub24tYWJlcnJhbnQgZGF0YSBhbmQgKk5BKiBpbmRpY2F0ZXMgbWlzc2luZyB2YWx1ZXMuIFRoZSBpZGVudGlmaWVyIG9mIHRoZSB2aXNpdCBjb3JyZXNwb25kcyB0byB0aGUgbmFtZSBvZiB0aGUgc2l0ZSBmcm9tIHdoaWNoIHRoZSBkYXRhIG9yaWdpbmF0ZWQsIGl0cyBzYW1wbGluZyBkYXRlIGFuZCB0aGUgc2FtcGxpbmcgbnVtYmVyLg0KDQpgYGB7ciA5LCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KI0lkZW50aWZpY2F0aW9uIG9mIHBvdGVudGlhbCBvdXRsaWVycyAocGFydCAyKQ0KDQpmb3IgKGogaW4gMjoobmNvbChkYXRhc2V0LkJJTzIpLTQpKSB7DQpjYXQoY29sbmFtZXMoZGF0YXNldC5CSU8yW2pdKSwgIlxuIikNCiNsaXN0IDwtIGxpc3QoaWZlbHNlKGRhdGFzZXQuQklPMlssal0gPCBxdWFudGlsZShkYXRhc2V0LkJJTzJbLGpdLCBwcm9icz1jKC4yNSksIG5hLnJtID0gVCkgLSAxLjUqSVFSKGRhdGFzZXQuQklPMlssal0sIG5hLnJtID0gVCkgfCBkYXRhc2V0LkJJTzJbLGpdID4gcXVhbnRpbGUoZGF0YXNldC5CSU8yWyxqXSwgcHJvYnM9YyguNzUpLCBuYS5ybSA9IFQpICsgMS41KklRUihkYXRhc2V0LkJJTzJbLGpdLCBuYS5ybSA9IFQpLCBkYXRhc2V0LkJJTzIkU2l0ZV9EYXRlX051bWJlciwgIiIpKQ0KQWN0aXZlX0ZyYW1lX0JpbyA8LSBkYXRhLmZyYW1lKGlmZWxzZShpcy5uYShkYXRhc2V0LkJJTzJbLGpdKSwgIiIsIGlmZWxzZShkYXRhc2V0LkJJTzJbLGpdIDwgcXVhbnRpbGUoZGF0YXNldC5CSU8yWyxqXSwgcHJvYnM9YyguMjUpLCBuYS5ybSA9IFQpIC0gMS41KklRUihkYXRhc2V0LkJJTzJbLGpdLCBuYS5ybSA9IFQpIHwgZGF0YXNldC5CSU8yWyxqXSA+IHF1YW50aWxlKGRhdGFzZXQuQklPMlssal0sIHByb2JzPWMoLjc1KSwgbmEucm0gPSBUKSArIDEuNSpJUVIoZGF0YXNldC5CSU8yWyxqXSwgbmEucm0gPSBUKSwgZGF0YXNldC5CSU8yJFNpdGVfRGF0ZV9OdW1iZXIsICIiKSkpDQpBY3RpdmVfRnJhbWVfQmlvWyJJcyBOQSJdID0gbGlzdChpZmVsc2UoaXMubmEoZGF0YXNldC5CSU8yWyxqXSksICJZZXMiLCAiTm8iKSkNCmNvbG5hbWVzKEFjdGl2ZV9GcmFtZV9CaW8pIDwtIGMoIlNpdGUsIERhdGUgYW5kIE51bWJlciIsICJJcyBOQSIpDQp3cml0ZS50YWJsZShBY3RpdmVfRnJhbWVfQmlvW0FjdGl2ZV9GcmFtZV9CaW8kIlNpdGUsIERhdGUgYW5kIE51bWJlciIgIT0gIiIsXSwgcm93Lm5hbWVzID0gRkFMU0UsIHF1b3RlID0gRkFMU0UsIG5hID0gIk5BIiwgc2VwID0gIiwgIikNCmNhdCgiTnVtYmVyIG9mIFBvdGVudGlhbCBPdXRsaWVyczoiLCBsZW5ndGgoQWN0aXZlX0ZyYW1lX0Jpb1tBY3RpdmVfRnJhbWVfQmlvJCJTaXRlLCBEYXRlIGFuZCBOdW1iZXIiICE9ICIiLF1bWzFdXSksICJcblxuIikNCn0NCg0KYGBgDQoNCmBgYHtyIDEwLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KI0lkZW50aWZpY2F0aW9uIG9mIHBvdGVudGlhbCBvdXRsaWVycyAocGFydCAyKQ0KDQpmb3IgKGogaW4gMjoobmNvbChkYXRhc2V0LkJJTzIpLTQpKSB7DQpjYXQoY29sbmFtZXMoZGF0YXNldC5CSU8yW2pdKSwgIlxuIikNCiNsaXN0IDwtIGxpc3QoaWZlbHNlKGRhdGFzZXQuQklPMlssal0gPCBxdWFudGlsZShkYXRhc2V0LkJJTzJbLGpdLCBwcm9icz1jKC4yNSksIG5hLnJtID0gVCkgLSAxLjUqSVFSKGRhdGFzZXQuQklPMlssal0sIG5hLnJtID0gVCkgfCBkYXRhc2V0LkJJTzJbLGpdID4gcXVhbnRpbGUoZGF0YXNldC5CSU8yWyxqXSwgcHJvYnM9YyguNzUpLCBuYS5ybSA9IFQpICsgMS41KklRUihkYXRhc2V0LkJJTzJbLGpdLCBuYS5ybSA9IFQpLCBkYXRhc2V0LkJJTzIkU2l0ZV9EYXRlX051bWJlciwgIiIpKQ0KQWN0aXZlX0ZyYW1lX0JpbyA8LSBkYXRhLmZyYW1lKGlmZWxzZShpcy5uYShkYXRhc2V0LkJJTzJbLGpdKSwgZGF0YXNldC5CSU8yJFNpdGVfRGF0ZV9OdW1iZXIsICIiKSkNCkFjdGl2ZV9GcmFtZV9CaW9bIklzIE5BIl0gPSBsaXN0KGlmZWxzZShpcy5uYShkYXRhc2V0LkJJTzJbLGpdKSwgIlllcyIsICJObyIpKQ0KY29sbmFtZXMoQWN0aXZlX0ZyYW1lX0JpbykgPC0gYygiU2l0ZSwgRGF0ZSBhbmQgTnVtYmVyIiwgIklzIE5BIikNCndyaXRlLnRhYmxlKEFjdGl2ZV9GcmFtZV9CaW9bQWN0aXZlX0ZyYW1lX0JpbyQiU2l0ZSwgRGF0ZSBhbmQgTnVtYmVyIiAhPSAiIixdLCByb3cubmFtZXMgPSBGQUxTRSwgcXVvdGUgPSBGQUxTRSwgbmEgPSAiTkEiLCBzZXAgPSAiLCAiKQ0KY2F0KCJOdW1iZXIgb2YgTWlzc2luZyBWYWx1ZXM6IiwgbGVuZ3RoKEFjdGl2ZV9GcmFtZV9CaW9bQWN0aXZlX0ZyYW1lX0JpbyQiU2l0ZSwgRGF0ZSBhbmQgTnVtYmVyIiAhPSAiIixdW1sxXV0pLCAiXG5cbiIpDQp9DQoNCmBgYA0KDQojI1ByZXNlbmNlIG9mIHplcm9zIA0KDQpJbiBlY29sb2dpY2FsIHN0dWRpZXMsIHdlIG5lZWQgdG8gY29uc2lkZXIgd2hhdCBpdCBtZWFucyB3aGVuIHR3byBzcGVjaWVzIGFyZSBqb2ludGx5IGFic2VudC4gVGhpcyBjb3VsZCBzYXkgc29tZXRoaW5nIGltcG9ydGFudCBhYm91dCB0aGUgZWNvbG9naWNhbCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSBzaXRlLiBXaGVuIHR3byBzaXRlcyBib3RoIGhhdmUgdGhlIHNhbWUgam9pbnQgYWJzZW5jZXMsIHRoaXMgbWlnaHQgbWVhbiB0aGF0IHRoZSBzaXRlcyBhcmUgZWNvbG9naWNhbGx5IHNpbWlsYXIuIE9uIHRoZSBvdGhlciBoYW5kLCBpZiBhIHNwZWNpZXMgaGFzIGEgaGlnaGx5IGNsdW1wZWQgZGlzdHJpYnV0aW9uLCBvciBpcyBzaW1wbHkgcmFyZSwgdGhlbiBqb2ludCBhYnNlbmNlcyBtaWdodCBhcmlzZSB0aHJvdWdoIGNoYW5jZSBhbmQgc2F5IG5vdGhpbmcgYWJvdXQgdGhlIHN1aXRhYmlsaXR5IG9mIGEgZ2l2ZW4gc2l0ZSBmb3IgYSBzcGVjaWVzLCB0aGUgc2ltaWxhcml0eSBhbW9uZyB0aGUgaGFiaXRhdCBuZWVkcyBvZiBzcGVjaWVzIG9yIHRoZSBlY29sb2dpY2FsIHNpbWlsYXJpdHkgb2Ygc2l0ZXMuIEEgaGlnaCBmcmVxdWVuY3kgb2YgemVyb3MsIHRodXMsIGNhbiBncmVhdGx5IGNvbXBsaWNhdGUgaW50ZXJwcmV0YXRpb24gb2Ygc3VjaCBhbmFseXNlcy4NCg0KIyMjQWJ1bmRhbmNlIEZyZXF1ZW5jeSBEaXN0cmlidXRpb24NCg0KQWJ1bmRhbmNlIHZhbHVlcyBhIHRheGEgY29tbW9ubHkgc2hvdyBhIHNrZXcgZGlzdHJpYnV0aW9uIHRoYXQgbG9va3MgbGlrZSBhIGxvZy1ub3JtYWwgZGlzdHJpYnV0aW9uLCB3aXRoIG1hbnkgc21hbGwgdG8gbW9kZXJhdGUgdmFsdWVzIGFuZCBhIGZldyBleHRyZW1lbHkgbGFyZ2UgdmFsdWVzLg0KDQpUaGUgZm9sbG93aW5nIGhpc3RvZ3JhbSBpbGx1c3RyYXRlcyB0aGUgYWJ1bmRhbmNlIGZyZXF1ZW5jeSBkaXN0cmlidXRpb24gb2YgdGF4YS4gVGhpcyBjaGFydCBoZWxwcywgYW1vbmcgb3RoZXIgdGhpbmdzLCB0byBldmFsdWF0ZSB0aGUgbnVtYmVyIG9mIDAgdmFsdWVzIGluIHRoZSBkYXRhc2V0LiANCg0KYGBge3IgMTEsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojSGlzdG9ncmFtIG9mIEFidW5kYW5jZSBGcmVxdWVuY3kgZGlzdHJpYnV0aW9uDQoNCiNkYXRhc2V0LkJJT19iayA8LSBkYXRhc2V0LkJJTw0KI2RhdGFzZXQuQklPW2lzLm5hKGRhdGFzZXQuQklPKV0gPC0gMA0KDQpjb3VudC5tZWFuIDwtIG1lYW4odW5saXN0KGRhdGFzZXQuQklPKSkNCmNvdW50LnNkIDwtIHNkKHVubGlzdChkYXRhc2V0LkJJTykpDQoNCmNvdW50Lm4gPC0gbGVuZ3RoKHdoaWNoKCFpcy5uYSh1bmxpc3QoZGF0YXNldC5CSU8pKSkpDQoNCmNvdW50LmJpbiA8LSBjZWlsaW5nKChtYXgodW5saXN0KGRhdGFzZXQuQklPKSktIG1pbih1bmxpc3QoZGF0YXNldC5CSU8pKSkvbmNsYXNzLlN0dXJnZXModW5saXN0KGRhdGFzZXQuQklPKSkpDQoNCmdyYXBoLmNvdW50IDwtIGdncGxvdCgpICsNCiAgYWVzKHJvdW5kKHVubGlzdChkYXRhc2V0LkJJTykpKSArDQogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gY291bnQuYmluLCBmaWxsID0gSSgnbGlnaHRibHVlJyksIGNvbG9yPUkoJ2JsYWNrJykpICsNCiAgeGxhYigiT2JzZXJ2ZWQgdmFsdWVzIikgKw0KICB5bGFiKCJGcmVxdWVuY3kiKSArIA0KICBnZ3RpdGxlKCJBYnVuZGFuY2UgRnJlcXVlbmNpZXMiKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KDQpnZ2lyYXBoKGNvZGUgPSBwcmludChncmFwaC5jb3VudCksIHpvb21fbWF4ID0gMTAsIGhlaWdodF9zdmcgPSA0KQ0KDQojZGF0YXNldC5CSU9bZGF0YXNldC5CSU8gPT0gMF0gPC0gTkENCiNkYXRhc2V0LkJJTyA8LSBkYXRhc2V0LkJJT19iaw0KDQpgYGANCg0KDQojIyNQcmVzZW5jZSBvZiBkb3VibGUtemVyb3MNCg0KV2UgbmVlZCB0byBrbm93IHdoZXRoZXIgdGhlcmUgYXJlIGRvdWJsZSB6ZXJvcyBpbiB0aGUgZGF0YS4gVGhpcyBtZWFucyB0aGF0IGZvciBlYWNoIHNwZWNpZXMtcGFpciwgd2UgbmVlZCB0byBjYWxjdWxhdGUgaG93IG9mdGVuIGJvdGggaGFkIHplcm8gYWJ1bmRhbmNlIGZvciB0aGUgc2FtZSBzaXRlLg0KDQpUaGUgZm9sbG93aW5nIGNvcnJlbGF0aW9uIG1hdHJpeCAob3IgKmNvcnJncmFtKikgaWxsdXN0cmF0ZXMgdGhlIGZyZXF1ZW5jeSB3aXRoIHdoaWNoIHBhaXJzIG9mIHRhemEgYm90aCBoYXZlIHplcm8gYWJ1bmRhbmNlLlRoZSBjb2xvciBhbmQgdGhlIGFtb3VudCB0aGF0IGEgY2lyY2xlIGhhcyBiZWVuIGZpbGxlZCBjb3JyZXNwb25kIHRvIHRoZSBwcm9wb3J0aW9uIG9mIG9ic2VydmF0aW9ucyB3aXRoIGRvdWJsZSB6ZXJvcy4gQSB3aGl0ZSBjb2xvciBpbmRpY2F0ZXMgYSBjb3JyZWxhdGlvbiBjbG9zZSB0byAwLjUgd2hlcmVhcyBhIGRhcmsgYmx1ZSBjb2xvciBpbmRpY2F0ZXMgYSBjb3JyZWxhdGlvbiBuZWFyIDEuIFRoaXMgbWF0cml4IGFsc28gaWxsdXN0cmF0ZXMgdGhlIHByb3BvcnRpb24gb2YgY29ycmVsYXRpb24gdmFsdWVzLiAwIGFidW5kYW5jZXMgb2YgYSB0YXhvbiByZWxhdGl2ZSB0byBhbGwgYWJ1bmRhbmNlIHZhbHVlcyBvYnNlcnZlZCBpbiB0aGUgbGF0dGVyLiBUaGUgZGlhZ29uYWwgcnVubmluZyBmcm9tIGJvdHRvbSBsZWZ0IHRvIHRvcCByaWdodCByZXByZXNlbnRzIHRoZSBwZXJjZW50YWdlIG9mIG9ic2VydmF0aW9ucyBvZiBhIHRheGEgZXF1YWwgdG8gemVyby4gT25seSB0YXhhIHByZXNlbnQgaW4gbW9yZSB0aGFuIDI1JSBvZiB0aGUgdmlzaXRzIGFyZSBzaG93bi4NCg0KPiAhW0FDVElPTjpdKC4uLy4uLy4uL0NvbmZpZ3VyYXRpb24vYWN0aW9uLnBuZykNCj4gKkV4YW1pbmUgdGhlIGZvbGxvd2luZzoqDQo+IA0KPiANCj4gLSAqQXJlIGRhdGEgc2hvd2luZyBhIHNob3J0IG9yIGEgbG9uZyBiaW9sb2dpY2FsIGdyYWRpZW50PyoNCj4gLSAqV2hhdCB0aGUgcHJlc2VuY2Ugb2YgZG91YmxlIHplcm9zIG1lYW5zIGZvciB0aGUgZGF0YT8qDQoNCg0KYGBge3IgMTIsIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9OCwgZmlnLndpZHRoPTE0fQ0KI0NvcnJlbGF0aW9uIG1hdHJpeCBmb3IgZG91YmxlLXplcm9zIGJldHdlZW4gdGF4YSB3aXRoIGEgZnJlcXVlbmN5ID4gMjUlDQoNCmRhdGFzZXQuQklPW2lzLm5hKGRhdGFzZXQuQklPKV0gPC0gMA0KDQojTGlzdGUgZGVzIHRheG9ucw0KQWxsUyA8LSBuYW1lcyhkYXRhc2V0LkJJTykNCg0KI0TDqXRlcm1pbmUgbGEgcmljaGVzc2UNCm9jY3VycmVuY2UgPC0gY29sU3VtcyhkYXRhc2V0LkJJT1ssQWxsU10gPiAwLCBuYS5ybSA9IFRSVUUpDQoNCiNEZWxldGUgYWxsIGNvdmFyaWFibGVzDQpCZW50aG9zIDwtIGRhdGFzZXQuQklPWyxBbGxTXQ0KDQojUmVkdWNpbmcgdGhlIG51bWJlciBvZiB0YXhhIHJlcHJlc2VudGVkIGluIHRoZSBmaWd1cmUsIG9ubHkgdGhvc2Ugd2l0aCBhIGZyZXF1ZW5jeSA+IDI1JSBhcmUga2VwdC4NCkZyZXFNaW4gPC0gMjUNCkJlbnRob3MyNSA8LSBCZW50aG9zWywgb2NjdXJyZW5jZSA+IChuY29sKEJlbnRob3MpLzEwMCpGcmVxTWluKV0NCnJtKEJlbnRob3MpDQpOIDwtIG5jb2woQmVudGhvczI1KQ0KDQoNCkFsbE5hbWVzIDwtIG5hbWVzKEJlbnRob3MyNSkNCkEgPC0gbWF0cml4KG5yb3cgPSBOLCBuY29sID0gTikNCg0KZm9yIChpIGluIDE6Til7DQogIGZvciAoaiBpbiAxOk4pew0KICAgIEFbaSxqXSA8LSBzdW0oZGF0YXNldC5CSU9bLEFsbFNbaV1dPT0wICAmIGRhdGFzZXQuQklPWyxBbGxTW2pdXT09MCwgbmEucm09VFJVRSkNCiAgfQ0KfQ0KDQoNCkExIDwtIEEvbnJvdyhCZW50aG9zMjUpDQojcHJpbnQoQTEsIGRpZ2l0cyA9IDIpDQpyb3duYW1lcyhBMSkgPC0gQWxsTmFtZXMNCmNvbG5hbWVzKEExKSA8LSBBbGxOYW1lcw0KDQpwYW5lbC5jb3JyZ3JhbS4yIDwtIGZ1bmN0aW9uKHgsIHksIHosIHN1YnNjcmlwdHMsIGF0ID0gcHJldHR5KHopLCBzY2FsZSA9IDAuOCwgLi4uKQ0Kew0KICAgIHJlcXVpcmUoImdyaWQiLCBxdWlldGx5ID0gVFJVRSkNCiAgICB4IDwtIGFzLm51bWVyaWMoeClbc3Vic2NyaXB0c10NCiAgICB5IDwtIGFzLm51bWVyaWMoeSlbc3Vic2NyaXB0c10NCiAgICB6IDwtIGFzLm51bWVyaWMoeilbc3Vic2NyaXB0c10NCiAgICB6Y29sIDwtIGxldmVsLmNvbG9ycyh6LCBhdCA9IGF0LCAuLi4pDQogICAgZm9yIChpIGluIHNlcShhbG9uZyA9IHopKQ0KICAgIHsNCiAgICAgICAgbGltcyA8LSByYW5nZSgwLCB6W2ldKQ0KICAgICAgICB0dmFsIDwtIDIgKiBiYXNlOjpwaSAqDQogICAgICAgICAgICBzZXEoZnJvbSA9IGxpbXNbMV0sIHRvID0gbGltc1syXSwgYnkgPSAwLjAxKQ0KICAgICAgICBncmlkLmNpcmNsZSh4ID0geFtpXSwgeSA9IHlbaV0sIHIgPSAuNSAqIHNjYWxlLA0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0LnVuaXRzID0gIm5hdGl2ZSIpDQogICAgICAgIGdyaWQucG9seWdvbih4ID0geFtpXSArIC41ICogc2NhbGUgKiBjKDAsIHNpbih0dmFsKSksDQogICAgICAgICAgICAgICAgICAgICB5ID0geVtpXSArIC41ICogc2NhbGUgKiBjKDAsIGNvcyh0dmFsKSksDQogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0LnVuaXRzID0gIm5hdGl2ZSIsDQogICAgICAgICAgICAgICAgICAgICBncCA9IGdwYXIoZmlsbCA9IHpjb2xbaV0pKQ0KICAgIH0NCn0NCg0KbGV2ZWxwbG90KEExLHhsYWI9TlVMTCx5bGFiPU5VTEwsDQogICAgYXQ9ZG8uYnJlYWtzKGMoMC41LDEuMDEpLDEwMSksDQogICAgcGFuZWw9cGFuZWwuY29ycmdyYW0uMiwNCiAgICBzY2FsZXM9bGlzdCh4PWxpc3Qocm90PTkwKSksDQogICAgY29sb3JrZXk9bGlzdChzcGFjZT0idG9wIiksDQogICAgY29sLnJlZ2lvbnM9Y29sb3JSYW1wUGFsZXR0ZShjKCJ3aGl0ZSIsImJsdWUiKSksIA0KICAgIG1haW4gPSAiQ29ycmdyYW0gb2YgZnJlcXVlbmN5IG9mIGRvdWJsZS16ZXJvcyIpDQoNCiNkYXRhc2V0LkJJT1tkYXRhc2V0LkJJTyA9PSAwXSA8LSBOQQ0KI2RhdGFzZXQuQklPIDwtIGRhdGFzZXQuQklPX2JrDQpgYGANCg0KDQojI0RhdGEgTm9ybWFsaXR5IA0KDQpWYXJpb3VzIHN0YXRpc3RpY2FsIHRlY2huaXF1ZXMgYXNzdW1lIG5vcm1hbGl0eS4gSXQgaXMgaW1wb3J0YW50IHRvIGtub3cgd2hldGhlciB0aGUgc3RhdGlzdGljYWwgdGVjaG5pcXVlIHRvIGJlIHVzZWQgZG9lcyBhc3N1bWUgbm9ybWFsaXR5LCBhbmQgd2hhdCBleGFjdGx5IGlzIGFzc3VtZWQgdG8gYmUgbm9ybWFsbHkgZGlzdHJpYnV0ZWQ/IEZvciBleGFtcGxlLCBhICpQcmluY2lwYWwgY29tcG9uZW50IGFuYWx5c2lzKiAoUENBKSBkb2VzIG5vdCByZXF1aXJlIG5vcm1hbGl0eS4gKkxpbmVhciByZWdyZXNzaW9uKiBkb2VzIGFzc3VtZSBub3JtYWxpdHksIGJ1dCBpcyByZWFzb25hYmx5IHJvYnVzdCBhZ2FpbnN0IHZpb2xhdGlvbiBvZiB0aGUgYXNzdW1wdGlvbi4gRm9yIG90aGVyIHRlY2huaXF1ZXMgbGlrZSAqZGlzY3JpbWluYW50IGFuYWx5c2lzKiwgbm9ybWFsaXR5IG9mIG9ic2VydmF0aW9ucyBvZiBhIHBhcnRpY3VsYXIgdmFyaWFibGUgd2l0aGluIGVhY2ggZ3JvdXAgaXMgaW1wb3J0YW50LiBUaGVyZWZvcmUsIHRlc3RpbmcgZm9yIG5vcm1hbGl0eSAoYW1vbmcgb3RoZXIgdGhpbmdzKSBpcyBhbHdheXMgcmVjb21tYW5kZWQgd2hlbiBzdGFydGluZyB0aGUgZGF0YSBhbmFseXNpcyBwaGFzZSBvZiBhbiBlY29sb2dpY2FsIHByb2plY3QuDQoNCiMjI1F1YW50aWxlLVF1YW50aWxlIChRLVEpIHBsb3RzIGFuZCBldCBmcmVxdWVuY3kgaGlzdG9ncmFtcw0KDQpGb3IgZWFjaCB2YXJpYWJsZSwgdGhlIGZpcnN0IGdyYXBoIChsZWZ0KSBpbGx1c3RyYXRlcyBieSBwb2ludHMgdGhlIG9ic2VydmVkIGRpc3RyaWJ1dGlvbiBvZiB0YXhvbiB2YWx1ZXMgYW5kIHRoZSB0aGVvcmV0aWNhbCBub3JtYWwgZGlzdHJpYnV0aW9uIGNhbGN1bGF0ZWQgZnJvbSB0aGUgcGFyYW1ldGVycyBvZiB0aGUgZGlzdHJpYnV0aW9uIG9ic2VydmVkIGJ5IGEgbGluZS4gVGhlIG1vcmUgdGhlIHZhbHVlcyBvYnNlcnZlZCBhcmUgcG9zaXRpb25lZCBvbiB0aGUgcmlnaHQsIHRoZSBtb3JlIHRoZXNlIGFyZSBkaXN0cmlidXRlZCBhY2NvcmRpbmcgdG8gdGhlIG5vcm1hbCBsYXcuIFRoZSBzZWNvbmQgZ3JhcGggKHJpZ2h0KSBzaG93cyBhIGhpc3RvZ3JhbSB0aGUgZnJlcXVlbmN5IGRpc3RyaWJ1dGlvbiBvZiB0aGUgdmFsdWVzIG9ic2VydmVkIGJ5IHRheG9uLiBJdCBhbGxvd3MgdG8gdmVyaWZ5IGFuZCB2YWxpZGF0ZSBpZiB0aGUgZGF0YSBkaXN0cmlidXRpb24gc2VlbXMgdG8gZm9sbG93IHRoZSBub3JtYWwgZGlzdHJpYnV0aW9uLiBUaGlzIGhpc3RvZ3JhbSBhbHNvIGlsbHVzdHJhdGVzIHRoZSBtZWFuIGFidW5kYW5jZSBwZXIgdGF4b24gYnkgYSBzb2xpZCBsaW5lIGFzIHdlbGwgYXMgdGhlIHN0YW5kYXJkIGRldmlhdGlvbiBvZiBhYnVuZGFuY2VzIHBlciB0YXhvbiBieSB0d28gZG90dGVkIGxpbmVzLg0KDQpgYGB7ciAxMywgZWNobz1GQUxTRX0NCiNRLVEgcGxvdHMgYW5kIGZyZXF1ZW5jeSBkaXN0cmlidXRpb24gaGlzdG9ncmFtcw0KDQpmb3IgKGkgaW4gMTpuY29sKGRhdGFzZXQuQklPKSl7DQpub3JtLm1lYW4gPC0gbWVhbihkYXRhc2V0LkJJT1ssaV0sIG5hLnJtPVQpDQpub3JtLnNkIDwtIHNkKGRhdGFzZXQuQklPWyxpXSwgbmEucm09VCkNCm5vcm0ubiA8LSBsZW5ndGgod2hpY2goIWlzLm5hKGRhdGFzZXQuQklPWyxpXSkpKQ0Kbm9ybS5iaW4gPC0gY2VpbGluZyhtYXgoZGF0YXNldC5CSU9bLGldLCBuYS5ybT1UKS0gbWluKGRhdGFzZXQuQklPWyxpXSwgbmEucm09VCkgL25jbGFzcy5TdHVyZ2VzKHdoaWNoKCFpcy5uYShkYXRhc2V0LkJJT1ssaV0pKSkpDQoNCnBhcihtZnJvdyA9IGMoMSwyKSwgbWFyPWMoNCw0LDMsMSkpDQoNCnFxbm9ybShkYXRhc2V0LkJJT1ssaV0sIG1haW4gPSBwYXN0ZSgiUS1RIFBsb3RcbiIsIGNvbG5hbWVzKGRhdGFzZXQuQklPW2ldKSkpDQpxcWxpbmUoZGF0YXNldC5CSU9bLGldLGx0eSA9IDIpDQoNCmhpc3QuYWIgPC0gaGlzdChhcy5udW1lcmljKHVubGlzdChkYXRhc2V0LkJJT1ssaV0pKSwgYnJlYWtzID0gIlN0dXJnZXMiLCB4bGFiID0gIkFib25kYW5jZSIsIHlsYWIgPSAiRnLDqXF1ZW5jZSIsIG1haW4gPSBwYXN0ZSgiRnJlcXVlbmN5IERpc3RyaWJ1dGlvblxuIiwgY29sbmFtZXMoZGF0YXNldC5CSU9baV0pKSkNCnhmaXQgPC0gc2VxKG1pbih3aGljaCghaXMubmEoZGF0YXNldC5CSU9bLGldKSkpLCBtYXgod2hpY2goIWlzLm5hKGRhdGFzZXQuQklPWyxpXSkpKSwgbGVuZ3RoPW5vcm0ubikNCnlmaXRfZGVuc2l0eSA8LSBkbm9ybSh4Zml0LCBtZWFuID0gbm9ybS5tZWFuLCBzZD1ub3JtLnNkKQ0KeWZpdF9mcmVxIDwtIHlmaXRfZGVuc2l0eSpkaWZmKGhpc3QuYWIkbWlkc1sxOjJdKSpub3JtLm4NCmxpbmVzKHhmaXQsIHlmaXRfZnJlcSwgY29sPSJyZWQiLCBsd2Q9MSkNCiAgYWJsaW5lKHYgPSBub3JtLm1lYW4sIGNvbCA9ICJibHVlIikgKw0KICBhYmxpbmUodiA9IG5vcm0ubWVhbiArIG5vcm0uc2QsIGx0eSA9IDIsIGNvbCA9ICJibHVlIikgKw0KICBhYmxpbmUodiA9IG5vcm0ubWVhbiAtIG5vcm0uc2QsIGx0eSA9IDIsIGNvbCA9ICJibHVlIikNCiAgfQ0KDQpgYGANCg0KDQojIyMjTm9ybWFsaXR5IHRlc3QgYnkgdGF4b24NCg0KT25lIHdheSB0byBleGFtaW5lIHRoZSBub3JtYWxpdHkgb2YgZGF0YSBpcyB0byB1c2UgdGhlIFNub3dzIHRlc3QuIEZvciBlYWNoIHRheG9uLCB0aGlzIGNhbGN1bGF0aW9uIHRlc3RzIHRoZSBudWxsIGh5cG90aGVzaXMgdGhhdCB0aGUgZGF0YSBjb21lcyBmcm9tIGFuIGV4YWN0IG5vcm1hbCBwb3B1bGF0aW9uLg0KDQpUaGlzIGlzIGEgbXVjaCBsZXNzIGludGVyZXN0aW5nIG51bGwgaHlwb3RoZXNpcyB0aGFuIHdoYXQgd2UgdXN1YWxseSB3YW50LCB3aGljaCBpcyB0byBrbm93IGlmIHRoZSBkYXRhIGNvbWUgZnJvbSBhIGRpc3RyaWJ1dGlvbiB0aGF0IGlzIHNpbWlsYXIgZW5vdWdoIHRvIHRoZSBub3JtYWwgdG8gdXNlIG5vcm1hbCB0aGVvcnkgaW5mZXJlbmNlLg0KDQpBIHZhbHVlIG9mIFAgKHAtdmFsdWUpIGxlc3MgdGhhbiAwLjA1IGluZGljYXRlcyB0aGF0IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBhc3N1bWUgdGhhdCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSBkYXRhIGZvbGxvd3MgdGhlIG5vcm1hbCBkaXN0cmlidXRpb24gd2l0aCBhIHByb2JhYmlsaXR5IG9mIDk1JS4gDQoNCmBgYHtyIDE0LCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KI1Rlc3RzIGRlIG5vcm1hbGl0w6kgZGUgU25vd3MgcGFyIHZhcmlhYmxlIA0KDQphcHBseShkYXRhc2V0LkJJTywgMiwgU25vd3NQZW51bHRpbWF0ZU5vcm1hbGl0eVRlc3QpDQoNCmBgYA0KDQoNCiMjIyNUYXhhIE9jY3VyZW5jZXMNCg0KQXQgaG93IG1hbnkgc2l0ZXMgZG9lcyBlYWNoIHRheG9uIG9jY3VyPw0KDQpGaXJzdCwgdGhlIHNvcnRlZCBsaXN0IGJlbG93IHNob3dzIHRoZSBhY2NyZWFzaW5nIG9jY3VyZW5jZSBvZiB0YXhhIGluIHRoZSBkYXRhc2V0Lg0KDQpBZnRlciB0aGF0LCB0d28gZ3JhcGhzIGFyZSBwcm9wb3NlZC4gVGhlIGZpcnN0IGdyYXBoIChsZWZ0KSBzaG93cyB0aGUgZGlzdHJpYnV0aW9uIG9mIHRheGEgcHJlc2VuY2UuIFRoZSBzZWNvbmQgZ3JhcGggKHJpZ2h0KSBpbGx1c3RyYXRlcyB0aGUgbG9nLXRyYW5zZm9ybWVkIGRhdGEuIE9uIHRoZXNlIGdyYXBocywgdGhlIG1lYW4gb2NjdXJlbmNlIGlzIHNob3duIGJ5IGEgc29saWQgbGluZSB3aGVyZWFzIHN0YW5kYXJkIGRldmlhdGlvbiBieSBkYXNoZWQgbGluZXMuDQoNCkVuIGV4YW1pbmF0aW9uIG9mIHRoZXNlIHR3byBncmFwaHMgYWxsb3dzIHVzIHRvIHZlcmlmeSBpZiB0aGUgdGF4b24gZGF0YXNldCBzZWFtcyB0byBjb21wbHkgdG8gYSBub3JtYWwgZGlzdHJpYnV0aW9uLiBJZiB0aGUgZGlzdHJpYnV0aW9uIGluIHRoZSBzZWNvbmQgZ3JhcGggaXMgY2xvc2VyIHRvIGEgbm9ybWFsIGRpc3RyaWJ1dGlvbiwgYSBsb2cgdHJhbnNmb3JtYXRpb24gY291bGQgYmUgdXNlZnVsLg0KDQpgYGB7ciAxNSwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRX0NCiNIaXN0b2dyYW1zIGZvciB0YXhhIG9jY3VyZW5jZXMNCg0Kc3BlLnByZXMgPC0gYXBwbHkoZGF0YXNldC5CSU8gPiAwLCAyLCBzdW0sIG5hLnJtID0gVFJVRSkNCnNwZS5wcmVzDQpwcmludCgiU29ydGVkIGxpc3Qgb2YgdGF4YSBvY2N1cmVuY2VzIikNCnNvcnQoc3BlLnByZXMpDQpzcGUucHJlcy5tZWFuIDwtIG1lYW4oc3BlLnByZXMsIG5hLnJtID0gVCkNCnNwZS5wcmVzLnNkIDwtIHNkKHNwZS5wcmVzLCBuYS5ybSA9IFQpDQoNCnByZXMubiA8LSBsZW5ndGgod2hpY2goIWlzLm5hKHNwZS5wcmVzKSkpDQoNCnByZXMuYmluIDwtIGNlaWxpbmcoKG1heChzcGUucHJlcyktIG1pbihzcGUucHJlcykpL25jbGFzcy5TdHVyZ2VzKHNwZS5wcmVzKSkNCg0KZ3JhcGgucHJlczEgPC0gcXBsb3Qoc3BlLnByZXMsDQogICAgICBnZW9tID0gImhpc3RvZ3JhbSIsDQogICAgICBiaW53aWR0aCA9IHByZXMuYmluLA0KICAgICAgeGxhYiA9ICJPY2N1cnJlbmNlIiwNCiAgICAgIHlsYWIgPSAiTnVtYmVyIG9mIHRheGEiLA0KICAgICAgbWFpbiA9ICJOdW1iZXIgb2Ygb2NjdXJyZW5jZXMiLA0KICAgICAgZmlsbCA9IEkoJ2xpZ2h0c3RlZWxibHVlMScpLA0KICAgICAgY29sb3IgPSBJKCdibGFjaycpKSArIA0KICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSBzcGUucHJlcy5tZWFuLA0KICAgICAgICAgICAgICBjb2xvciA9ICdibHVlMycsIHNpemUgPSAxKSArDQogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IGMoc3BlLnByZXMubWVhbiArIHNwZS5wcmVzLnNkLCBzcGUucHJlcy5tZWFuIC0gc3BlLnByZXMuc2QpLA0KICAgICAgICAgICAgIGNvbG9yID0gJ2JsdWUzJywgDQogICAgICAgICAgICAgc2l6ZSA9IDEsDQogICAgICAgICAgICAgbGluZXR5cGUgPSAyKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArDQogIHN0YXRfZnVuY3Rpb24oZnVuID0gZnVuY3Rpb24oeCwgbWVhbiwgc2QsIG4sIGJ3KXsNCiAgICBuICogYncgKiBkbm9ybSh4ID0geCwgbWVhbiA9IG1lYW4sIHNkID0gc2QpfSwNCiAgICBhcmdzID0gbGlzdChtZWFuID0gc3BlLnByZXMubWVhbiwgc2QgPSBzcGUucHJlcy5zZCwgbiA9IHByZXMubiwgYncgPSBwcmVzLmJpbiksDQogICAgbHdkID0gMSwNCiAgICBjb2wgPSAncmVkJykNCg0KZ3JhcGgucHJlczIgPC0gcXBsb3Qoc3BlLnByZXMsDQogICAgICBnZW9tID0gImhpc3RvZ3JhbSIsDQogICAgICBiaW53aWR0aCA9IHByZXMuYmluLA0KICAgICAgeGxhYiA9ICJPY2N1cnJlbmNlIiwNCiAgICAgIHlsYWIgPSAiTG9nKE51bWJlciBvZiB0YXhhKSIsDQogICAgICBtYWluID0gIk51bWJlciBvZiBvY2N1cnJlbmNlcyIsDQogICAgICBmaWxsID0gSSgnbGlnaHRzdGVlbGJsdWUxJyksDQogICAgICBjb2xvciA9IEkoJ2JsYWNrJyksDQogICAgICBsb2cgPSAneScpICsgDQogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IHNwZS5wcmVzLm1lYW4sDQogICAgICAgICAgICAgIGNvbG9yID0gJ2JsdWUzJywgc2l6ZSA9IDEpICsNCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gYyhzcGUucHJlcy5tZWFuICsgc3BlLnByZXMuc2QsIHNwZS5wcmVzLm1lYW4gLSBzcGUucHJlcy5zZCksDQogICAgICAgICAgICAgY29sb3IgPSAnYmx1ZTMnLCANCiAgICAgICAgICAgICBzaXplID0gMSwNCiAgICAgICAgICAgICBsaW5ldHlwZSA9IDIpICsNCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpICsNCiAgc3RhdF9mdW5jdGlvbihmdW4gPSBmdW5jdGlvbih4LCBtZWFuLCBzZCwgbiwgYncpew0KICAgIG4gKiBidyAqIGRub3JtKHggPSB4LCBtZWFuID0gbWVhbiwgc2QgPSBzZCl9LA0KICAgIGFyZ3MgPSBsaXN0KG1lYW4gPSBzcGUucHJlcy5tZWFuLCBzZCA9IHNwZS5wcmVzLnNkLCBuID0gcHJlcy5uLCBidyA9IHByZXMuYmluKSwNCiAgICBsd2QgPSAxLA0KICAgIGNvbCA9ICdyZWQnKQ0KDQpncmlkLmFycmFuZ2UoZ3JhcGgucHJlczEsIGdyYXBoLnByZXMyLCBuY29sID0gMikNCg0KYGBgDQoNCg0KVGhlIGZvbGxvd2luZyBncmFwaHMgYXJlIHNpbWlsYXIgdG8gdGhlIHByZXZpb3VzIG9uZXMgYnV0IGZvciByZWxhdGl2ZSBmcmVxdWVuY2llcy4NCg0KYGBge3IgMTYsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojSGlzdG9ncmFtcyBmb3IgdGF4YSByZWxhdGl2ZSBmcmVxdWVuY2llcw0KDQpzcGUucmVsZiA8LSAxMDAqc3BlLnByZXMvbnJvdyhkYXRhc2V0LkJJTykNCnNwZS5yZWxmDQpwcmludCgiU29ydGVkIGxpc3Qgb2YgdGF4YSByZWxhdGl2ZSBmcmVxdWVuY3kiKQ0Kcm91bmQoc29ydChzcGUucmVsZiksIDEpDQpzcGUucmVsZi5tZWFuIDwtIG1lYW4oc3BlLnJlbGYpDQpzcGUucmVsZi5zZCA8LSBzZChzcGUucmVsZikNCg0KcmVsZi5uIDwtIGxlbmd0aCh3aGljaCghaXMubmEoc3BlLnJlbGYpKSkNCg0KcmVsZi5iaW4gPC0gY2VpbGluZygobWF4KHNwZS5yZWxmKS0gbWluKHNwZS5yZWxmKSkvbmNsYXNzLlN0dXJnZXMoc3BlLnJlbGYpKQ0KDQpncmFwaC5yZWxmMSA8LSBxcGxvdChzcGUucmVsZiwNCiAgICAgIGdlb20gPSAiaGlzdG9ncmFtIiwNCiAgICAgIGJpbndpZHRoID0gcmVsZi5iaW4sDQogICAgICB4bGFiID0gIkZyZXF1ZW5jeSBvZiBvY2N1cnJlbmNlICglKSIsDQogICAgICB5bGFiID0gIk51bWJlciBvZiB0YXhhIiwNCiAgICAgIG1haW4gPSAiVGF4YSBSZWxhdGl2ZSBGcmVxdWVuY2llcyIsDQogICAgICBmaWxsID0gSSgnbGlnaHRzdGVlbGJsdWUxJyksDQogICAgICBjb2xvciA9IEkoJ2JsYWNrJykpICsgDQogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IHNwZS5yZWxmLm1lYW4sDQogICAgICAgICAgICAgIGNvbG9yID0gJ2JsdWUzJywgc2l6ZSA9IDEpICsNCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gYyhzcGUucmVsZi5tZWFuICsgc3BlLnJlbGYuc2QsIHNwZS5yZWxmLm1lYW4gLSBzcGUucmVsZi5zZCksDQogICAgICAgICAgICAgY29sb3IgPSAnYmx1ZTMnLCANCiAgICAgICAgICAgICBzaXplID0gMSwNCiAgICAgICAgICAgICBsaW5ldHlwZSA9IDIpICsNCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpICsNCiAgc3RhdF9mdW5jdGlvbihmdW4gPSBmdW5jdGlvbih4LCBtZWFuLCBzZCwgbiwgYncpew0KICAgIG4gKiBidyAqIGRub3JtKHggPSB4LCBtZWFuID0gbWVhbiwgc2QgPSBzZCl9LA0KICAgIGFyZ3MgPSBsaXN0KG1lYW4gPSBzcGUucHJlcy5tZWFuLCBzZCA9IHNwZS5wcmVzLnNkLCBuID0gcmVsZi5uLCBidyA9IHJlbGYuYmluKSwNCiAgICBsd2QgPSAxLA0KICAgIGNvbCA9ICdyZWQnKQ0KDQpncmFwaC5yZWxmMiA8LSBxcGxvdChzcGUucmVsZiwNCiAgICAgIGdlb20gPSAiaGlzdG9ncmFtIiwNCiAgICAgIGJpbndpZHRoID0gcmVsZi5iaW4sDQogICAgICB4bGFiID0gIkZyZXF1ZW5jeSBvZiBvY2N1cnJlbmNlICglKSIsDQogICAgICB5bGFiID0gIkxvZyhOdW1iZXIgb2YgdGF4YSkiLA0KICAgICAgbWFpbiA9ICJUYXhhIFJlbGF0aXZlIEZyZXF1ZW5jaWVzIChsb2cpIiwNCiAgICAgIGZpbGwgPSBJKCdsaWdodHN0ZWVsYmx1ZTEnKSwNCiAgICAgIGNvbG9yID0gSSgnYmxhY2snKSwNCiAgICAgIGxvZyA9ICJ5IikgKyANCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gc3BlLnJlbGYubWVhbiwNCiAgICAgICAgICAgICAgY29sb3IgPSAnYmx1ZTMnLCBzaXplID0gMSkgKw0KICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSBjKHNwZS5yZWxmLm1lYW4gKyBzcGUucmVsZi5zZCwgc3BlLnJlbGYubWVhbiAtIHNwZS5yZWxmLnNkKSwNCiAgICAgICAgICAgICBjb2xvciA9ICdibHVlMycsIA0KICAgICAgICAgICAgIHNpemUgPSAxLA0KICAgICAgICAgICAgIGxpbmV0eXBlID0gMikgKw0KICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkgKw0KICBzdGF0X2Z1bmN0aW9uKGZ1biA9IGZ1bmN0aW9uKHgsIG1lYW4sIHNkLCBuLCBidyl7DQogICAgbiAqIGJ3ICogZG5vcm0oeCA9IHgsIG1lYW4gPSBtZWFuLCBzZCA9IHNkKX0sDQogICAgYXJncyA9IGxpc3QobWVhbiA9IHNwZS5wcmVzLm1lYW4sIHNkID0gc3BlLnByZXMuc2QsIG4gPSByZWxmLm4sIGJ3ID0gcmVsZi5iaW4pLA0KICAgIGx3ZCA9IDEsDQogICAgY29sID0gJ3JlZCcpDQoNCmdyaWQuYXJyYW5nZShncmFwaC5yZWxmMSwgZ3JhcGgucmVsZjIsIG5jb2wgPSAyKQ0KDQpgYGANCg0KDQojIyMjQm94cGxvdHMgZm9yIHRheGEgb2NjdXJlbmNlcw0KDQpUaGUgZmlyc3QgYm94cGxvdCAobGVmdCkgaWxsdXN0cmF0ZXMgdGhlIGRpc3RyaWJ1dGlvbiBvZiBvY2N1cnJlbmNlcyBjYWxjdWxhdGVkIGZyb20gdGhlIGRhdGEgZmlsZSB3aGVyZWFzIHRoZSBzZWNvbmQgKHJpZ2h0KSBzaG93cyB0aGUgZGlzdHJpYnV0aW9uIG9mIG9jY3VycmVuY2VzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgbG9nIHRyYW5zZm9ybWVkIGRhdGEgZmlsZS4NCg0KDQoNCmBgYHtyIDE3LCBlY2hvPUZBTFNFfQ0KI0JveHBsb3QgZm9yIHRheGEgb2NjdXJlbmNlcw0KDQpib3gucHJlczEgPC0gcXBsb3QoeSA9IHNwZS5wcmVzLCB4ID0gIiIsIGdlb20gPSAiYm94cGxvdCIsIHlsYWIgPSAiT2NjdXJyZW5jZSIsIG1haW4gPSAiRGlzdHJpYnV0aW9uIG9mIHRheGEgb2NjdXJlbmNlcyIpICsgDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KYm94LnByZXMyIDwtIHFwbG90KHkgPSBzcGUucHJlcywgeCA9ICIiLCBnZW9tID0gImJveHBsb3QiLCB5bGFiID0gIkxvZyhPY2N1cnJlbmNlKSIsIG1haW4gPSAiRGlzdHJpYnV0aW9uIG9mIHRheGEgb2NjdXJyZW5jZXMiLCBsb2cgPSAieSIpICsgDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KDQpncmlkLmFycmFuZ2UoYm94LnByZXMxLCBib3gucHJlczIsIG5jb2wgPSAyKQ0KDQpgYGANCg0KVGhlIGZvbGxvd2luZyBib3hwbG90cyBhcmUgc2ltaWxhciB0byB0aGUgcHJldmlvdXMgYnV0IGZvciByZWxhdGl2ZSBmcmVxdWVuY2llcw0KDQpgYGB7ciAxOCwgZWNobz1GQUxTRX0NCiNCb8OudGVzIMOgIG1vdXN0YWNoZXMgZGUgZnLDqXF1ZW5jZXMgcmVsYXRpdmVzIGVuIHRheG9ucw0KDQpib3gucmVsZjEgPC0gcXBsb3QoeSA9IHNwZS5yZWxmLCB4ID0gIiIsIGdlb20gPSAiYm94cGxvdCIsIHlsYWIgPSAiRnLDqXF1ZW5jZSBkJ29jY3VycmVuY2UgKCUpIiwgbWFpbiA9ICJEaXN0cmlidXRpb24gZGVzIGZyw6lxdWVuY2VzXG5yZWxhdGl2ZXMgZW4gdGF4b25zIikgKyANCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpDQpib3gucmVsZjIgPC0gcXBsb3QoeSA9IHNwZS5yZWxmLCB4ID0gIiIsIGdlb20gPSAiYm94cGxvdCIsIHlsYWIgPSAiTG9nKEZyw6lxdWVuY2UgZCdvY2N1cnJlbmNlICglKSkiLCBtYWluID0gIkRpc3RyaWJ1dGlvbiBkZXMgZnLDqXF1ZW5jZXNcbnJlbGF0aXZlcyBlbiB0YXhvbnMiLCBsb2cgPSAieSIpICsgDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KDQpncmlkLmFycmFuZ2UoYm94LnJlbGYxLCBib3gucmVsZjIsIG5jb2wgPSAyKQ0KDQpgYGANCg0KDQojI1RheGEgSW5kZXBlbmRlbmNlDQoNCiMjI0NvcnJlbGF0aW9uIG1hdHJpeCBiZXR3ZWVuIHRheGENCg0KVGhlIGZvbGxvd2luZyBjb3JyZWxhdGlvbiBtYXRyaXggc2hvd3MgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGFsbCBwYWlycyBvZiB0YXhhLiBJdCBhbGxvd3MgdG8gdmVyaWZ5IHRoZSBwcmVzZW5jZSBvZiBjby1vY2N1cmVuY2UgYmV0d2VlbiB0YXhhLiBPbmx5IHRheGEgcHJlc2VudCBpbiBtb3JlIHRoYW4gMjUlIG9mIHRoZSB2aXNpdHMgYXJlIHNob3duLiANCg0KYGBge3IgMTksIGVjaG89RkFMU0V9DQojTWF0cmljZSBkZSBjb3Jyw6lsYXRpb24gZW50cmUgbGVzIHZhcmlhYmxlcyAtIHRheG9ucyBhdmVjIGZyw6lxdWVuY2UgPiAyNSUNCg0KR0dhbGx5OjpnZ3BhaXJzKEJlbnRob3MyNSwgcHJvZ3Jlc3M9RikNCmZvcihpIGluIDE6Y2VpbGluZyhsZW5ndGgoQmVudGhvczI1KS80KSl7Zm9yKGogaW4gMTpjZWlsaW5nKGxlbmd0aChCZW50aG9zMjUpLzQpKXtwcmludChnZ2R1byhCZW50aG9zMjUsIGNvbHVtbnNYPSgoaSo0LTMpOihpKjQpKVsoKGkqNC0zKTooaSo0KSk8PWxlbmd0aChCZW50aG9zMjUpXSwgY29sdW1uc1k9KChqKjQtMyk6KGoqNCkpWygoaio0LTMpOihqKjQpKTw9bGVuZ3RoKEJlbnRob3MyNSldKSl9fQ0KYGBgDQoNCg0KIyMjUGVhcnNvbiBDb3JyZWxhdGlvbiBNYXRyaXgNCg0KVGhlIGZvbGxvd2luZyBjb3JyZWxhdGlvbiBtYXRyaXggaWxsdXN0cmF0ZXMgdGhlIGNvcnJlbGF0aW9uIHN0cmVuZ3RoIHRoYXQgZXhpc3RzIGJldHdlZW4gdHdvIHRheGEgYnkgdGhlIGludGVuc2l0eSBvZiB0aGUgY29sb3IuIEEgY29ycmVsYXRpb24gaWxsdXN0cmF0ZWQgYnkgdGhlIHdoaXRlIGNvbG9yIGluZGljYXRlcyBhIGNvcnJlbGF0aW9uIGZvcmNlIHRoYXQgdGVuZHMgdG8gYSB2YWx1ZSBvZiAwIGFuZCBhIGNvcnJlbGF0aW9uIGlsbHVzdHJhdGVkIGJ5IHRoZSBkYXJrIGJsdWUgY29sb3IgaW5kaWNhdGVzIGEgY29ycmVsYXRpb24gZm9yY2UgdGhhdCB0ZW5kcyB0byBhIHZhbHVlIG9mIDEuIFBlYXJzb24gY29ycmVsYXRpb24gdmFsdWVzIGJldHdlZW4gdGF4YSBhcmUgc2hvd24gaW4gdGhlIGxvd2VyIGxlZnQgcG9ydGlvbiBvZiB0aGUgZmlndXJlLiBUaGlzIG1hdHJpeCBhbHNvIGlsbHVzdHJhdGVzIHRoZSBwcm9wb3J0aW9uIG9mIG5vbi16ZXJvIGFidW5kYW5jZSB2YWx1ZXMgdGhhdCBhIHRheG9uIGhhcyB3aXRoIHJlc3BlY3QgdG8gYWxsIHRoZSBhYnVuZGFuY2UgdmFsdWVzIG9ic2VydmVkIGluIHRoZSBsYXR0ZXIuIE9ubHkgdGF4YSBwcmVzZW50IGluIG1vcmUgdGhhbiAyNSUgb2YgdGhlIHZpc2l0cyBhcmUgc2hvd24uDQoNCmBgYHtyIDIwLCBlY2hvPUZBTFNFfQ0KI1BlYXJzb24gQ29ycmVsYXRpb24gTWF0cml4IC0gdGF4YSB3aXRoIGEgZnJlcXVlbmN5ID4gMjUlDQoNCmNvcnJncmFtKEJlbnRob3MyNSwgb3JkZXIgPSBGQUxTRSwgbG93ZXIucGFuZWwgPSBwYW5lbC5jb3IsIHVwcGVyLnBhbmVsID0gcGFuZWwucGllLCB0ZXh0LnBhbmVsID0gcGFuZWwudHh0LCBtYWluPXBhc3RlKCJUYXhhIENvdmFyaWFuY2UgLSBmb3IgZnJlcXVlbmN5ID4iLCBGcmVxTWluLCAiJSIpKQ0KDQpgYGANCg0KDQojIyNUYXhhIEFidW5kYW5jZSB0aHJvdWdoIFRpbWUNCg0KSXQgY291bGQgYmUgaW50ZXJlc3RpbmcgdG8gbG9vayBhdCB0aGUgYWJ1bmRhbmNlIG9mIHRheGEgdGhyb3VnaCB0aW1lIHRvIHNlZSBkeW5hbWljcyBvciBhYnJ1cHQgY2hhbmdlcy4NCg0KUG91ciBjaGFxdWUgdGF4b24sIHRoZSBmaXJzdCBncmFwaCAodG9wIGxlZnQpIHNob3dzIHRoZSBhYnVuZGFuY2UgdmFsdWUgb2YgdGhlIGRhdGEgYnkgc2FtcGxpbmcgeWVhcnMuIFRoZSBzZWNvbmQgZ3JhcGggKHRvcCByaWdodCkgaWxsdXN0cmF0ZXMgdGhlIG9ic2VydmVkIHBhdHRlcm5zIG9mIGNoYW5nZXMgaW4gYWJ1bmRhbmNlIG9mIGluZGl2aWR1YWxzIG92ZXIgdGltZS4gVGhlIHRoaXJkIGdyYXBoIChib3R0b20gbGVmdCkgaWxsdXN0cmF0ZXMgZnV0dXJlIGZvcmVjYXN0cyBvZiBjaGFuZ2VzIGluIGFidW5kYW5jZSBvZiBpbmRpdmlkdWFscyBvdmVyIHRpbWUuIE9uIHRoaXMgZ3JhcGgsIHRoZSBibHVlIGxpbmUgY29ycmVzcG9uZHMgdG8gdGhlIGV4cGVjdGVkIGF2ZXJhZ2UgdHJlbmQgb2YgY2hhbmdlcyBvdmVyIHRpbWUsIHRoZSBkYXJrIGdyYXkgem9uZSBjb3JyZXNwb25kcyB0byBhIGNvbmZpZGVuY2UgaW50ZXJ2YWwgb2YgODAlIGFuZCB0aGUgcGFsZSBncmF5IHpvbmUgY29ycmVzcG9uZHMgdG8gYSA5NSUgY29uZmlkZW5jZSBpbnRlcnZhbC4gVGhlIGZvdXJ0aCBncmFwaCAoYm90dG9tIHJpZ2h0KSBpbGx1c3RyYXRlcyB0aW1lIHNlcmllcyBhdXRvY29ycmVsYXRpb24gKEFDRikuIEFuIGF1dG9jb3JyZWxhdGlvbiB2YWx1ZSBncmVhdGVyIHRoYW4gdGhlIDk1JSBjb25maWRlbmNlIGludGVydmFsIGlsbHVzdHJhdGVkIGJ5IHRoZSBkb3R0ZWQgbGluZSBpbmRpY2F0ZXMgYSBwb3NzaWJsZSBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIHZhcmlhYmxlIGFuZCB0aGUgdGltZSBvZiB5ZWFyICh0aW1lKS4gRm9yIGV4YW1wbGUsIGEgY2VydGFpbiB2YWx1ZSBvZiBhYnVuZGFuY2Ugb2YgYSB0YXhvbiBvYnNlcnZlZCBpbiBhIGdpdmVuIHllYXIgY291bGQgYmUgZXhwbGFpbmVkIGJ5IGEgY2VydGFpbiBldmVudCBkYXRpbmcgZnJvbSBhIHByZXZpb3VzIHllYXIgKGxhZyBpbiB0aW1lIGluIHllYXJzKS4gSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgdGhlIGF1dG9jb3JyZWxhdGlvbiBhdCBvZmZzZXQgdGltZSAwIGlzLCBieSBkZWZpbml0aW9uLCBlcXVhbCB0byAxLg0KDQpgYGB7ciAyMSwgZWNobz1GQUxTRX0NCiNUZW1wb3JhbCBpbmRlcGVuZGVuY2Ugb2YgdGF4YQ0KDQpkYXRhc2V0LkJJTzIgPC0gbGVmdF9qb2luKGRhdGFzZXQuQklPMiwgZGF0YXNldC5OQU0yWyxjKCJTYW1wbGVJZCIsICJTYW1wbGVEYXRlIildLCBieSA9ICJTYW1wbGVJZCIpDQoNCiNkYXRhc2V0LkJJTzJfYmsgPC0gZGF0YXNldC5CSU8yDQojZGF0YXNldC5CSU8yW2lzLm5hKGRhdGFzZXQuQklPMildIDwtIDANCg0KZm9yKGkgaW4gMjoobmNvbChkYXRhc2V0LkJJTzIpLTUpKXsNCiAgcGFyKG1mcm93ID0gYygyLCAyKSwgbWFyID0gYyg0LDQsNCwxKSkNCiAgZ3JhcGgudGltZSA8LSBwbG90KGRhdGFzZXQuQklPMiRTYW1wbGVEYXRlLCBkYXRhc2V0LkJJTzJbLGldLCB4bGFiID0gIlllYXIiLCB5bGFiID0gIkFidW5kYW5jZSIsIG1haW4gPSBwYXN0ZSgiVGVtcG9yYWwgQWJ1bmRhbmNlIG9mXG4iLCBjb2xuYW1lcyhkYXRhc2V0LkJJTzJbaV0pKSkNCg0KICBncmFwaC50aW1lMiA8LSB0cyhkYXRhc2V0LkJJTzJbLGldLCBmcmVxdWVuY3kgPSAxMiwgc3RhcnQgPSBjKDIwMDUtMDEtMDEpLCBlbmQgPSBjKDIwMTYtMDEtMDEpKQ0KICBwbG90KGdyYXBoLnRpbWUyLCB4bGFiID0gIlllYXIiLCB5bGFiID0gIkFidW5kYW5jZSIsIG1haW4gPSBwYXN0ZSgiUHJlZGljdGlvbiBvZiBBYnVuZGFuY2Ugb2ZcbiIsIGNvbG5hbWVzKGRhdGFzZXQuQklPMltpXSkpKQ0KDQogIGF1dG8uYXJpbWEgPC0gYXV0by5hcmltYShncmFwaC50aW1lMikNCiAgZ3JhcGguYXV0by5hcmltYSA8LSBwbG90KGZvcmVjYXN0KGF1dG8uYXJpbWEsIGggPSAxMjApKQ0KICANCiAgZ3JhcGgubGFnIDwtIGFjZihncmFwaC50aW1lMiwgeGxhYiA9ICJMYWcgKHllYXJzKSIsIHlsYWIgPSAiQWJ1bmRhbmNlIiwgbWFpbiA9IHBhc3RlKCJBQ0YgZm9yIiwgY29sbmFtZXMoZGF0YXNldC5CSU8yW2ldKSksIHlsaW0gPSBjKDAsIDEpKQ0KfQ0KDQojZGF0YXNldC5CSU8yW2RhdGFzZXQuQklPMiA9PSAwXSA8LSBOQQ0KI2RhdGFzZXQuQklPMiA8LSBkYXRhc2V0LkJJTzJfYmsNCg0KYGBgDQoNClRoZSBmb2xsb3dpbmcgcmVzdWx0cyBwcmVzZW50IHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgQm94LUxqdW5nIHN0YXRpc3RpY2FsIHRlc3QgYXBwbGllZCB0byBlYWNoIHRheG9uIGFuZCBhcmUgY29tcGxlbWVudGFyeSB0byB0aGUgcHJldmlvdXMgZ3JhcGhzLiBBIHZhbHVlIG9mIFAgKHAtdmFsdWUpIGxvd2VyIHRoYW4gMC4wNSBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVzaWR1YWwgdmFsdWVzIG9mIGEgdmFyaWFibGUgZGVwZW5kIG9uIHRoZSBwZXJpb2Qgb2YgdGhlIHllYXIgKHRpbWUpLg0KDQpgYGB7ciAyMiwgZWNobz1GQUxTRX0NCiNJbmTDqXBlbmRhbmNlIHRlbXBvcmVsbGUgZGVzIHRheG9ucyAoc3VpdGUpDQoNCiNkYXRhc2V0LkJJTzJfYmsgPC0gZGF0YXNldC5CSU8yDQojZGF0YXNldC5CSU8yW2lzLm5hKGRhdGFzZXQuQklPMildIDwtIDANCg0KZm9yKGkgaW4gMjoobmNvbChkYXRhc2V0LkJJTzIpLTUpKXsNCiAgZ3JhcGgudGltZTIgPC0gdHMoZGF0YXNldC5CSU8yWyxpXSwgZnJlcXVlbmN5ID0gMTIsIHN0YXJ0ID0gYygyMDA1LTAxLTAxKSwgZW5kID0gYygyMDE2LTAxLTAxKSkNCiAgYXV0by5hcmltYSA8LSBhdXRvLmFyaW1hKGdyYXBoLnRpbWUyKQ0KICBib3ggPC0gbGFwcGx5KDE6MjAsIGZ1bmN0aW9uKGopIEJveC50ZXN0IChyZXNpZChhdXRvLmFyaW1hKSwgbGFnID0gaiwgdHlwZT0iTGp1bmciKSkNCiAgcHJpbnQocGFzdGUoY29sbmFtZXMoZGF0YXNldC5CSU8yW2ldKSkpICANCiAgcHJpbnQoYm94KQ0KfQ0KDQojZGF0YXNldC5CSU8yIDwtIGRhdGFzZXQuQklPMl9iaw0KDQpgYGANCg0KDQojIyNTcGF0aWFsIENvcnJlbGF0aW9uDQoNClRoZSBmb2xsb3dpbmcgcmVzdWx0cyBwcmVzZW50IHRoZSBzcGF0aWFsIGF1dG9jb3JyZWxhdGlvbiByZXN1bHRzIGFwcGxpZWQgdG8gZWFjaCB2YXJpYWJsZS4gQSB2YWx1ZSBvZiBQIChwLXZhbHVlKSBsZXNzIHRoYW4gMC4wNSBtYWtlcyBpdCBwb3NzaWJsZSB0byBhc3N1bWUgdGhhdCB0aGUgc3BhdGlhbCBkaXN0cmlidXRpb24gb2YgdGhlIHZhbHVlcyBpcyBzdWJqZWN0IHRvIG5vbi1yYW5kb20gc3BhdGlhbCBhZ2dyZWdhdGlvbi4gV2hlbiB0aGUgdmFsdWUgb2YgUCAocC12YWx1ZSkgaXMgbGVzcyB0aGFuIDAuMDUsIGEgcG9zaXRpdmUgTW9yYW4gaW5kZXggKE1vcmFuJ3MgSSkgaW5kaWNhdGVzIHRoYXQgdGhlIHZhbHVlcyBhcmUgYWdncmVnYXRlZCB3aXRoIGVhY2ggb3RoZXIgd2hpbGUgYSBuZWdhdGl2ZSBNb3JhbiBpbmRleCBpbmRpY2F0ZXMgdGhhdCB0aGUgdmFsdWVzIGFyZSBzY2F0dGVyZWQgYmV0d2VlbiB0aGVtLg0KDQpgYGB7ciAyMywgZWNobz1GQUxTRX0NCiMjU3BhdGlhbCBpbmTDqXBlbmRlbmNlIG9mIHRheGENCg0KI2RhdGFzZXQuQklPMltpcy5uYShkYXRhc2V0LkJJTzIpXSA8LSAwDQoNCmJpby5kaXN0cyA8LSBhcy5tYXRyaXgoZGlzdChjYmluZChkYXRhc2V0LkJJTzIkTGF0aXR1ZGUsIGRhdGFzZXQuQklPMiRMb25naXR1ZGUpKSkNCmJpby5kaXN0c1t3aGljaChzYXBwbHkoYmlvLmRpc3RzLCBpcy5uYSkpXSA8LSAwIA0KYmlvLmRpc3RzLmludiA8LSAxL2Jpby5kaXN0cw0KZGlhZyhiaW8uZGlzdHMuaW52KSA8LSAwDQpiaW8uZGlzdHMuaW52W2lzLmluZmluaXRlKGJpby5kaXN0cy5pbnYpXSA8LSAwDQpsdyA8LSBtYXQybGlzdHcoYmlvLmRpc3RzLmludikNCmx3VyA8LSBuYjJsaXN0dyhsdyRuZWlnaGJvdXJzLCBnbGlzdD1sdyR3ZWlnaHRzLCBzdHlsZT0iVyIsIHplcm8ucG9saWN5ID0gVCkNCg0KZm9yKGogaW4gMjoobmNvbChkYXRhc2V0LkJJTzIpLTUpKXsNCnByaW50KHBhc3RlKGNvbG5hbWVzKGRhdGFzZXQuQklPMltqXSkpKQ0KbW9yYW4udGVzdCA8LSBtb3Jhbi50ZXN0KGRhdGFzZXQuQklPMlssal0sIGx3VywgYWx0ZXJuYXRpdmU9InR3by5zaWRlZCIsIHplcm8ucG9saWN5ID0gVCkgDQpwcmludChtb3Jhbi50ZXN0KQ0KfQ0KDQojZGF0YXNldC5CSU8yIDwtIGRhdGFzZXQuQklPMl9iaw0KDQpgYGANCg0KDQojI0RpdmVyc2l0eQ0KDQojIyNEaXZlcnNpdHkgTWV0cmljcw0KDQpUaGUgZm9sbG93aW5nIHRhYmxlIHByZXNlbnRzIHRoZSBjYWxjdWxhdGlvbiBvZiBzZXZlcmFsIGRpdmVyc2l0eSBtZXRyaWNzIHBlciB2aXNpdC4gDQoNCmBgYHtyIDI0LCBlY2hvPUZBTFNFfQ0KI1RhYmxlIGZvciBkaXZlcnNpdHkgbWV0cmljcw0KDQojUmljaG5lc3MNCk4wIDwtIHJvd1N1bXMoZGF0YXNldC5CSU8gPiAwLCBuYS5ybSA9IFRSVUUpDQoNCiNTaGFubm9uJ3MgZW50cm9weQ0KI2RhdGFzZXQuQklPW2lzLm5hKGRhdGFzZXQuQklPKV0gPC0gMA0KSCA8LSBkaXZlcnNpdHkoZGF0YXNldC5CSU8pDQoNCiNTaGFubm9uJ3MgaW5kZXgNCk4xIDwtIGV4cChIKQ0KDQojU2ltcHNvbidzIGluZGV4DQpOMiA8LSBkaXZlcnNpdHkoZGF0YXNldC5CSU8sICJpbnYiKQ0KDQojUGllbG91J3MgZXZlbm5lc3MNCkogPC0gSC9sb2coTjApDQoNCiNTaGFubm9uJ3MgZXZlbm5lc3MgKEhpbGwncyByYXRpbykNCkUxMCA8LSBOMS9OMA0KDQojU2ltcHNvbidzIGV2ZW5uZXNzIChIaWxsJ3MgcmF0aW8pDQpFMjAgPC0gTjIvTjANCg0KI1RhYmxlIGZvciBkaXZlcnNpdHkNCiMoZGl2IDwtIGRhdGEuZnJhbWUoTjAsIEgsIE4xLCBOMiwgRTEwLCBFMjAsIEopKQ0KI2RhdGFzZXQuQklPW2RhdGFzZXQuQklPID09IDBdIDwtIE5BDQoNCmRpdiA8LSBkYXRhLmZyYW1lKE4wLCBILCBOMSwgTjIsIEosIEUxMCwgRTIwLCBkYXRhc2V0LkJJTzIkU2l0ZV9EYXRlX051bWJlcikNCiNkaXYgPC0gcm93bmFtZXNfdG9fY29sdW1uKGRpdiwgdmFyID0gInJvd25hbWVzIikNCiNkaXYgPC0gbGVmdF9qb2luKGRpdiwgZGF0YXNldC5OQU0yWyxjKCJTYW1wbGVJZCIsICJTaXRlX0RhdGVfTnVtYmVyIildLCBieSA9ICJTYW1wbGVJZCIpDQojZGl2JHJvd25hbWVzIDwtIE5VTEwNCg0Ke2RpdiA8LSBkaXZbLCBjKDgsMSwyLDMsNCw1LDYsNyldDQojZGl2DQpuYW1lcyhkaXYpWzFdIDwtICJTaXRlX0RhdGVfVmlzaXQiDQpuYW1lcyhkaXYpWzJdIDwtICJSaWNobmVzcyINCm5hbWVzKGRpdilbM10gPC0gIlNoYW5ub24ncyBlbnRyb3B5Ig0KbmFtZXMoZGl2KVs0XSA8LSAiU2hhbm5vbidzIGluZGV4Ig0KbmFtZXMoZGl2KVs1XSA8LSAiU2ltcHNvbidzIGluZGV4Ig0KbmFtZXMoZGl2KVs2XSA8LSAiUGllbG91J3MgZXZlbm5lc3MiDQpuYW1lcyhkaXYpWzddIDwtICJTaGFubm9uJ3MgZXZlbm5lc3MiDQpuYW1lcyhkaXYpWzhdIDwtICJTaW1wc29uJ3MgZXZlbm5lc3MiDQp9DQoNCmRhdGF0YWJsZShkaXYsIGZpbHRlciA9ICJ0b3AiLCByb3duYW1lcz1GLCBvcHRpb25zID0gbGlzdChzY3JvbGxYID0gVFJVRSApKQ0KDQpybShkYXRhc2V0Lk5BTTIpDQpgYGANCg0KDQojIyNHcmFwaHMgZm9yIGRpdmVyc2l0eQ0KDQoNCmBgYHtyIDI1LCBlY2hvPUZBTFNFfQ0KI0hpc3RvZ3JhbXMgb2YgU2hhbm5vbidzIGRpdmVyc2l0eSBpbmRleA0KDQojTjENCiNwcmludCgiT3JkcmUgY3JvaXNzYW50IGRlcyBvY2N1cnJlbmNlcyBkZSBsYSBkaXZlcnNpdMOpIGRlIFNoYW5ub24iKQ0KI3JvdW5kKHNvcnQoTjEpLCAxKQ0KTjEubWVhbiA8LSBtZWFuKE4xKQ0KTjEuc2QgPC0gc2QoTjEpDQoNCk4xLm4gPC0gbGVuZ3RoKHdoaWNoKCFpcy5uYShOMSkpKQ0KDQpOMS5iaW4gPC0gY2VpbGluZygobWF4KE4xKS0gbWluKE4xKSkvbmNsYXNzLlN0dXJnZXMoTjEpKQ0KDQpncmFwaC5OMS4xIDwtIHFwbG90KE4xLA0KICAgICAgZ2VvbSA9ICJoaXN0b2dyYW0iLA0KICAgICAgYmlud2lkdGggPSBOMS5iaW4sDQogICAgICB4bGFiID0gIlNoYW5ub24ncyBkaXZlcnNpdHkiLA0KICAgICAgeWxhYiA9ICJPY2N1cnJlbmNlIiwNCiAgICAgIG1haW4gPSAiU2hhbm5vbidzIGRpdmVyc2l0eVxuKG9ic2VydmVkKSIsDQogICAgICBmaWxsID0gSSgnbGlnaHRzdGVlbGJsdWUxJyksDQogICAgICBjb2xvciA9IEkoJ2JsYWNrJykpICsgDQogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IE4xLm1lYW4sDQogICAgICAgICAgICAgIGNvbG9yID0gJ2JsdWUzJywgc2l6ZSA9IDEpICsNCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gYyhOMS5tZWFuICsgTjEuc2QsIE4xLm1lYW4gLSBOMS5zZCksDQogICAgICAgICAgICAgY29sb3IgPSAnYmx1ZTMnLCANCiAgICAgICAgICAgICBzaXplID0gMSwNCiAgICAgICAgICAgICBsaW5ldHlwZSA9IDIpICsNCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpICsNCiAgc3RhdF9mdW5jdGlvbihmdW4gPSBmdW5jdGlvbih4LCBtZWFuLCBzZCwgbiwgYncpew0KICAgIG4gKiBidyAqIGRub3JtKHggPSB4LCBtZWFuID0gbWVhbiwgc2QgPSBzZCl9LA0KICAgIGFyZ3MgPSBsaXN0KG1lYW4gPSBOMS5tZWFuLCBzZCA9IE4xLnNkLCBuID0gTjEubiwgYncgPSBOMS5iaW4pLA0KICAgIGx3ZCA9IDEsDQogICAgY29sID0gJ3JlZCcpDQoNCmdyYXBoLk4xLjIgPC0gcXBsb3QoTjEsDQogICAgICBnZW9tID0gImhpc3RvZ3JhbSIsDQogICAgICBiaW53aWR0aCA9IE4xLmJpbiwNCiAgICAgIHhsYWIgPSAiU2hhbm5vbidzIGRpdmVyc2l0eSIsDQogICAgICB5bGFiID0gIkxvZyhPY2N1cnJlbmNlKSIsDQogICAgICBtYWluID0gIlNoYW5ub24ncyBkaXZlcnNpdHlcbihsb2ctdHJhbnNmb3JtZWQpIiwNCiAgICAgIGZpbGwgPSBJKCdsaWdodHN0ZWVsYmx1ZTEnKSwNCiAgICAgIGNvbG9yID0gSSgnYmxhY2snKSwNCiAgICAgIGxvZyA9ICJ5IikgKyANCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gTjEubWVhbiwNCiAgICAgICAgICAgICAgY29sb3IgPSAnYmx1ZTMnLCBzaXplID0gMSkgKw0KICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSBjKE4xLm1lYW4gKyBOMS5zZCwgTjEubWVhbiAtIE4xLnNkKSwNCiAgICAgICAgICAgICBjb2xvciA9ICdibHVlMycsIA0KICAgICAgICAgICAgIHNpemUgPSAxLA0KICAgICAgICAgICAgIGxpbmV0eXBlID0gMikgKw0KICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkgKw0KICBzdGF0X2Z1bmN0aW9uKGZ1biA9IGZ1bmN0aW9uKHgsIG1lYW4sIHNkLCBuLCBidyl7DQogICAgbiAqIGJ3ICogZG5vcm0oeCA9IHgsIG1lYW4gPSBtZWFuLCBzZCA9IHNkKX0sDQogICAgYXJncyA9IGxpc3QobWVhbiA9IE4xLm1lYW4sIHNkID0gTjEuc2QsIG4gPSBOMS5uLCBidyA9IE4xLmJpbiksDQogICAgbHdkID0gMSwNCiAgICBjb2wgPSAncmVkJykNCg0KZ3JpZC5hcnJhbmdlKGdyYXBoLk4xLjEsIGdyYXBoLk4xLjIsIG5jb2wgPSAyKQ0KDQojSGlzdG9ncmFtcyBvZiBTaW1wc29uJ3MgZGl2ZXJzaXR5IGluZGV4DQoNCiNOMg0KI3ByaW50KCJPcmRyZSBjcm9pc3NhbnQgZGVzIG9jY3VycmVuY2VzIGRlIGxhIGRpdmVyc2l0w6kgZGUgU2ltcHNvbiIpDQojcm91bmQoc29ydChOMiksIDEpDQpOMi5tZWFuIDwtIG1lYW4oTjIpDQpOMi5zZCA8LSBzZChOMikNCg0KTjIubiA8LSBsZW5ndGgod2hpY2goIWlzLm5hKE4yKSkpDQoNCk4yLmJpbiA8LSBjZWlsaW5nKChtYXgoTjIpLSBtaW4oTjIpKS9uY2xhc3MuU3R1cmdlcyhOMikpDQoNCmdyYXBoLk4yLjEgPC0gcXBsb3QoTjIsDQogICAgICBnZW9tID0gImhpc3RvZ3JhbSIsDQogICAgICBiaW53aWR0aCA9IE4yLmJpbiwNCiAgICAgIHhsYWIgPSAiU2ltcHNvbidzIGRpdmVyc2l0eSIsDQogICAgICB5bGFiID0gIk9jY3VycmVuY2UiLA0KICAgICAgbWFpbiA9ICJTaW1wc29uJ3MgZGl2ZXJzaXR5XG4ob2JzZXJ2ZWQpIiwNCiAgICAgIGZpbGwgPSBJKCdsaWdodHN0ZWVsYmx1ZTEnKSwNCiAgICAgIGNvbG9yID0gSSgnYmxhY2snKSkgKyANCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gTjIubWVhbiwNCiAgICAgICAgICAgICAgY29sb3IgPSAnYmx1ZTMnLCBzaXplID0gMSkgKw0KICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSBjKE4yLm1lYW4gKyBOMi5zZCwgTjIubWVhbiAtIE4yLnNkKSwNCiAgICAgICAgICAgICBjb2xvciA9ICdibHVlMycsIA0KICAgICAgICAgICAgIHNpemUgPSAxLA0KICAgICAgICAgICAgIGxpbmV0eXBlID0gMikgKw0KICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkgKw0KICBzdGF0X2Z1bmN0aW9uKGZ1biA9IGZ1bmN0aW9uKHgsIG1lYW4sIHNkLCBuLCBidyl7DQogICAgbiAqIGJ3ICogZG5vcm0oeCA9IHgsIG1lYW4gPSBtZWFuLCBzZCA9IHNkKX0sDQogICAgYXJncyA9IGxpc3QobWVhbiA9IE4yLm1lYW4sIHNkID0gTjIuc2QsIG4gPSBOMi5uLCBidyA9IE4yLmJpbiksDQogICAgbHdkID0gMSwNCiAgICBjb2wgPSAncmVkJykNCg0KZ3JhcGguTjIuMiA8LSBxcGxvdChOMiwNCiAgICAgIGdlb20gPSAiaGlzdG9ncmFtIiwNCiAgICAgIGJpbndpZHRoID0gTjIuYmluLA0KICAgICAgeGxhYiA9ICJTaW1wc29uJ3MgZGl2ZXJzaXR5IiwNCiAgICAgIHlsYWIgPSAiTG9nKE9jY3VycmVuY2UpIiwNCiAgICAgIG1haW4gPSAiU2ltcHNvbidzIGRpdmVyc2l0eVxuKGxvZy10cmFuc2Zvcm1lZCkiLA0KICAgICAgZmlsbCA9IEkoJ2xpZ2h0c3RlZWxibHVlMScpLA0KICAgICAgY29sb3IgPSBJKCdibGFjaycpLA0KICAgICAgbG9nID0gInkiKSArIA0KICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSBOMi5tZWFuLA0KICAgICAgICAgICAgICBjb2xvciA9ICdibHVlMycsIHNpemUgPSAxKSArDQogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IGMoTjIubWVhbiArIE4yLnNkLCBOMi5tZWFuIC0gTjIuc2QpLA0KICAgICAgICAgICAgIGNvbG9yID0gJ2JsdWUzJywgDQogICAgICAgICAgICAgc2l6ZSA9IDEsDQogICAgICAgICAgICAgbGluZXR5cGUgPSAyKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArDQogIHN0YXRfZnVuY3Rpb24oZnVuID0gZnVuY3Rpb24oeCwgbWVhbiwgc2QsIG4sIGJ3KXsNCiAgICBuICogYncgKiBkbm9ybSh4ID0geCwgbWVhbiA9IG1lYW4sIHNkID0gc2QpfSwNCiAgICBhcmdzID0gbGlzdChtZWFuID0gTjIubWVhbiwgc2QgPSBOMi5zZCwgbiA9IE4yLm4sIGJ3ID0gTjIuYmluKSwNCiAgICBsd2QgPSAxLA0KICAgIGNvbCA9ICdyZWQnKQ0KDQpncmlkLmFycmFuZ2UoZ3JhcGguTjIuMSwgZ3JhcGguTjIuMiwgbmNvbCA9IDIpDQoNCmBgYA0KDQoNCg0KIyNSZWxlYXNlcyBOb3Rlcw0KKipXaGF0J3MgTmV3LCBVcGRhdGVkLCBvciBGaXhlZCBpbiBUaGlzIFJlbGVhc2UqKg0KDQoqKioNCiFbQUNUSU9OOl0oLi4vLi4vLi4vQ29uZmlndXJhdGlvbi9sb2dvX25ldy5wbmcpIE5ld8KgJm5ic3A7Jm5ic3A7Jm5ic3A7wqAgIVtBQ1RJT046XSguLi8uLi8uLi9Db25maWd1cmF0aW9uL2xvZ29fdXBkYXRlZC5wbmcpIFVwZGF0ZWTCoCZuYnNwOyZuYnNwOyZuYnNwO8KgICFbQUNUSU9OOl0oLi4vLi4vLi4vQ29uZmlndXJhdGlvbi9sb2dvX2ZpeGVkLnBuZykgRml4ZWQNCg0KKioqDQoNCioqQ0FCSU5fdnZfYmlvbG9neS5SbWQgVmVyc2lvbiAxLjEg4oCUIEZlYnJ1YXJ5IDE0LCAyMDE4KioNCg0KIVtBQ1RJT046XSguLi8uLi8uLi9Db25maWd1cmF0aW9uL2xvZ29fdXBkYXRlZC5wbmcpICAgKipVcGRhdGUqKiAtLS0gUmVkdWNlIHRoZSBudW1iZXJzIG9mIHByb2NlZHVyZXMgYW5kIGNoYW5nZSB0aGVpciBvcmdhbmlzYXRpb24uDQoNCioqQ0FCSU5fdnZfYmlvbG9neS5SbWQgVmVyc2lvbiAxLjAg4oCUIEF1Z3VzdCAxOCwgMjAxNyoqDQoNCiFbQUNUSU9OOl0oLi4vLi4vLi4vQ29uZmlndXJhdGlvbi9sb2dvX25ldy5wbmcpICAgKipQcmVtacOocmUgdmVyc2lvbioqLg0KDQoNCioqKg0KDQpEZXZlbG9wcGVkIGJ5IFtNYXJ0aW4gSmVhbl0obWFpbHRvOm1hcnRpbi5qZWFuQGNhbmFkYS5jYSkgYW5kIEV2ZWx5bmUgUGFxdWV0dGUtQm9pc2NsYWlyDQoNCg0K